Ver código fonte

푸쉬 버그 수정

rv 2018042601
sanghoonkwon 7 anos atrás
pai
commit
113f5c67a0

+ 1 - 1
app/build.gradle

@@ -10,7 +10,7 @@ android {
         versionName '0.7.1'
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
 
-        buildConfigField "String", "REVISION", "\"2018042501\""
+        buildConfigField "String", "REVISION", "\"2018042601\""
         buildConfigField "String", "RC", "\"rc4\""
 
         buildConfigField "String", "WEB_REAL_URL", "\"https://qtalk.dreamplus.center/newgw/b/v2\""

+ 5 - 0
app/src/main/java/kr/co/hanwha/hifive/data/model/AlarmData.java

@@ -11,6 +11,7 @@ public class AlarmData {
     String response;
     String created_at;
     String updated_at;
+    String url;
 
     String profile_url;//나중에 구현
     boolean is_opened;
@@ -21,6 +22,10 @@ public class AlarmData {
     int context_id;
     int group_id;
 
+    public String getUrl() {
+        return url;
+    }
+
     public String getProfile_url() {
         return profile_url;
     }

+ 37 - 15
app/src/main/java/kr/co/hanwha/hifive/fcm/HFFirebaseMessagingService.java

@@ -1,10 +1,13 @@
 package kr.co.hanwha.hifive.fcm;
 
+import android.app.Notification;
+import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.BitmapFactory;
+import android.os.Build;
 import android.support.v7.app.NotificationCompat;
 import android.text.TextUtils;
 import android.util.Log;
@@ -35,7 +38,6 @@ public class HFFirebaseMessagingService extends FirebaseMessagingService {
         // Not getting messages here? See why this may be: https://goo.gl/39bRNJ
         if (BuildConfig.DEBUG) Log.d(TAG, "From: " + remoteMessage.getFrom());
 
-
         // Check if message contains a data payload.
         if (remoteMessage.getData().size() > 0) {
             if (BuildConfig.DEBUG) Log.d(TAG, "Message data payload: " + remoteMessage.getData());
@@ -95,6 +97,7 @@ public class HFFirebaseMessagingService extends FirebaseMessagingService {
                 startActivity(intent);
             } else {
             */
+
 //            Intent intent = new Intent(getApplicationContext(), IntroActivity.class);
             Intent intent = new Intent(getApplicationContext(), LandingActivity.class);
             if (TextUtils.isEmpty(group_id) == false)
@@ -107,25 +110,44 @@ public class HFFirebaseMessagingService extends FirebaseMessagingService {
             if (TextUtils.isEmpty(value3) == false)
                 intent.putExtra(HFNotiUtil.KEY_VALUE3, value3);
 //            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK);
-
             PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
 
-            NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
-            mBuilder.setSmallIcon(R.mipmap.noti_icon);    // required
-            mBuilder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.launcher_icon));
-            mBuilder.setContentTitle(title);                // required
-            mBuilder.setContentText(message);               // required
-            mBuilder.setStyle(new android.support.v4.app.NotificationCompat.BigTextStyle());
-            mBuilder.setTicker(message);                    // optional
-            mBuilder.setAutoCancel(true);
-            mBuilder.setContentIntent(pendingIntent);
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+                // Create the NotificationChannel
+                int importance = NotificationManager.IMPORTANCE_DEFAULT;
+                NotificationChannel mChannel = new NotificationChannel("CHANNEL_ID", "Notification", importance);
+                mChannel.setDescription("Notification");
+                mChannel.enableVibration(true);
+                mChannel.setVibrationPattern(new long[]{100, 200, 100, 200});
+                NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+                notificationManager.createNotificationChannel(mChannel);
+
+                Notification.Builder builder = new Notification.Builder(getApplicationContext(), "CHANNEL_ID")
+                        .setContentTitle(title)
+                        .setContentText(message)
+                        .setTicker(message)
+                        .setSmallIcon(R.mipmap.noti_icon)
+                        .setAutoCancel(true)
+                        .setContentIntent(pendingIntent);
+
+                NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+                mNotificationManager.notify((int) System.currentTimeMillis(), builder.build());// TODO - CHECK Noti ID
+            } else {
+                NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
+                mBuilder.setSmallIcon(R.mipmap.noti_icon);    // required
+                mBuilder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.launcher_icon));
+                mBuilder.setContentTitle(title);                // required
+                mBuilder.setContentText(message);               // required
+                mBuilder.setStyle(new android.support.v4.app.NotificationCompat.BigTextStyle());
+                mBuilder.setTicker(message);                    // optional
+                mBuilder.setAutoCancel(true);
+                mBuilder.setContentIntent(pendingIntent);
 //                mBuilder.setSound(Uri.parse("android.resource://co.kr.hanwha.NGW/" + R.raw.notification));
 
-            NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
-            mNotificationManager.notify((int) System.currentTimeMillis(), mBuilder.build());// TODO - CHECK Noti ID
-            /*
+                NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+                mNotificationManager.notify((int) System.currentTimeMillis(), mBuilder.build());// TODO - CHECK Noti ID
             }
-            */
+
 
         } catch (Exception e) {
             e.printStackTrace();

+ 28 - 106
app/src/main/java/kr/co/hanwha/hifive/screen/main/MainActivity.java

@@ -1,5 +1,6 @@
 package kr.co.hanwha.hifive.screen.main;
 
+import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
@@ -18,6 +19,7 @@ import kr.co.hanwha.hifive.data.model.NotificationData;
 import kr.co.hanwha.hifive.dialog.HFDefaultDialog;
 import kr.co.hanwha.hifive.enums.BaseAnimationType;
 import kr.co.hanwha.hifive.enums.BaseToolbarType;
+import kr.co.hanwha.hifive.enums.LandingType;
 import kr.co.hanwha.hifive.enums.MainTab;
 import kr.co.hanwha.hifive.screen.main.dashboard.MainDashboardFragment;
 import kr.co.hanwha.hifive.screen.main.home.MainHomeFragment;
@@ -41,11 +43,7 @@ public class MainActivity extends BaseActivity {
     private MainProjectFragment mFragmentProject;
     private MainDashboardFragment mFragmentDashboard;
 
-    private LinearLayout mLayoutTab;
-    private Animation mAnimTabVisible = null;
-    private Animation mAnimTabGone = null;
-    private boolean isTabAni = false;
-    private ArrayList<Boolean> animationStack = new ArrayList<Boolean>();
+    private int mNotificationValue1 = 0;
 
     @Override
     protected int getContentViewResource() {
@@ -66,12 +64,6 @@ public class MainActivity extends BaseActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
-        mLayoutTab = (LinearLayout) findViewById(R.id.tab_linearLayout);
-
-
-        MainTab tab = HFInfoUtil.getDefaultScreen(this);
-        selectTab(tab);
-
         findViewById(R.id.tabTask_imageButton).setOnClickListener(onClickListener);
         findViewById(R.id.tabProject_imageButton).setOnClickListener(onClickListener);
         findViewById(R.id.tabDashboard_imageButton).setOnClickListener(onClickListener);
@@ -84,7 +76,7 @@ public class MainActivity extends BaseActivity {
             }
         });
 
-        initAnimation();
+        selectTab(getDefaultTab());
 
         // Notice
         checkNotice();
@@ -96,6 +88,28 @@ public class MainActivity extends BaseActivity {
         checkNotification();
     }
 
+    private MainTab getDefaultTab() {
+        MainTab tab = HFInfoUtil.getDefaultScreen(this);
+        NotificationData data = HFInfoUtil.getNotificationData(this);
+        if (data != null) {
+            int type = 0;
+            try {
+                if (TextUtils.isEmpty(data.getType()) == false)
+                    type = Integer.parseInt(data.getType());
+
+                if (type == LandingType.MAIN_UNIT.getCode()) {
+                    tab = MainTab.PROJECT;
+                    mNotificationValue1 = Integer.parseInt(data.getValue1());
+                } else if (type == LandingType.MAIN_DASHBOARD_UNIT.getCode()) {
+                    tab = MainTab.DASHBOARD;
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return tab;
+    }
+
     private void checkLanding(Intent intent) {
         if (intent == null) return;
 
@@ -191,12 +205,13 @@ public class MainActivity extends BaseActivity {
             mSelectedTab = tab;
             if (mFragmentHome == null)
                 mFragmentHome = new MainHomeFragment();
-//            fragment.setOnMainListener(onMainListener);
             replaceFragment(mContainerViewId, mFragmentHome);
         } else if (tab == MainTab.PROJECT) {
             mSelectedTab = tab;
             if (mFragmentProject == null)
                 mFragmentProject = new MainProjectFragment();
+            mFragmentProject.setProjectId(mNotificationValue1);
+            mNotificationValue1 = 0;
             replaceFragment(mContainerViewId, mFragmentProject);
         } else if (tab == MainTab.DASHBOARD) {
             mSelectedTab = tab;
@@ -207,12 +222,6 @@ public class MainActivity extends BaseActivity {
             mSelectedTab = MainTab.SETTING;
             MainSettingFragment fragment = new MainSettingFragment();
             replaceFragment(mContainerViewId, fragment);
-            /*
-            HFNetworkUtil networkUtil = new HFNetworkUtil();
-            MainWebviewFragment fragment = new MainWebviewFragment();
-            fragment.setUrl(networkUtil.getWebUrlSetting());
-            replaceFragment(mContainerViewId, fragment);
-            */
         }
     }
 
@@ -238,91 +247,4 @@ public class MainActivity extends BaseActivity {
             }
         }
     };
-
-    private void initAnimation() {
-        mAnimTabVisible = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.appear_bottom_tab);
-        mAnimTabGone = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.disappear_bottom_tab);
-
-        mAnimTabVisible.setAnimationListener(tabVisibleListener);
-        mAnimTabGone.setAnimationListener(tabGoneListener);
-    }
-
-    private void showToolbar(boolean show) {
-        try {
-            animationStack.add(show);
-            if (isTabAni)
-                return;
-
-            if (show && mLayoutTab.getVisibility() != View.VISIBLE) {
-                isTabAni = true;
-                mLayoutTab.setVisibility(View.VISIBLE);
-                mLayoutTab.setAnimation(mAnimTabVisible);
-                mLayoutTab.startAnimation(mAnimTabVisible);
-
-//                mLayoutToolbar.setVisibility(View.VISIBLE);
-//                mLayoutToolbar.startAnimation(mAnimToolbarVisible);
-            } else if (show == false && mLayoutTab.getVisibility() == View.VISIBLE) {
-                isTabAni = true;
-                mLayoutTab.setAnimation(mAnimTabGone);
-                mLayoutTab.startAnimation(mAnimTabGone);
-
-//                mLayoutToolbar.startAnimation(mAnimToolbarGone);
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    Animation.AnimationListener tabVisibleListener = new Animation.AnimationListener() {
-        @Override
-        public void onAnimationStart(Animation animation) {
-        }
-
-        @Override
-        public void onAnimationRepeat(Animation animation) {
-        }
-
-        @Override
-        public void onAnimationEnd(Animation animation) {
-            mLayoutTab.setVisibility(View.VISIBLE);
-            isTabAni = false;
-
-            if (animationStack.size() > 0)
-                animationStack.remove(0);
-            if (animationStack.size() > 0) {
-                while (animationStack.size() > 1) {
-                    animationStack.remove(0);
-                }
-                boolean show = animationStack.get(0);
-                animationStack.remove(0);
-                showToolbar(show);
-            }
-        }
-    };
-    Animation.AnimationListener tabGoneListener = new Animation.AnimationListener() {
-        @Override
-        public void onAnimationStart(Animation animation) {
-        }
-
-        @Override
-        public void onAnimationRepeat(Animation animation) {
-        }
-
-        @Override
-        public void onAnimationEnd(Animation animation) {
-            mLayoutTab.setVisibility(View.INVISIBLE);
-            isTabAni = false;
-
-            if (animationStack.size() > 0)
-                animationStack.remove(0);
-            if (animationStack.size() > 0) {
-                while (animationStack.size() > 1) {
-                    animationStack.remove(0);
-                }
-                boolean show = animationStack.get(0);
-                animationStack.remove(0);
-                showToolbar(show);
-            }
-        }
-    };
 }

+ 3 - 0
app/src/main/java/kr/co/hanwha/hifive/screen/main/project/MainProjectContract.java

@@ -17,8 +17,11 @@ public interface MainProjectContract {
     interface View extends BaseView<MainHomeContract.Presenter> {
         void setRefreshing(boolean refreshing);
 
+        void setProjectId(int projectId);
+
         /**
          * 소속된 유닛이 없을 경우
+         *
          * @param empty Boolean
          */
         void setEmptyView(boolean empty);

+ 9 - 1
app/src/main/java/kr/co/hanwha/hifive/screen/main/project/MainProjectFragment.java

@@ -48,6 +48,7 @@ public class MainProjectFragment extends BaseFragment implements MainProjectCont
     private TextView mTextViewEmpty;
 
     private MainProjectPresenter mPresenter;
+    private int mProjectId = 0;
 
     @Nullable
     @Override
@@ -82,11 +83,18 @@ public class MainProjectFragment extends BaseFragment implements MainProjectCont
 
         mPresenter = new MainProjectPresenter(getActivity(), this,
                 mAdapterList, mAdapterList);
-        mPresenter.initProjectList();
+        if (mProjectId != 0) mPresenter.setProjectId(mProjectId);
+        else
+            mPresenter.initProjectList();
 
         return parent;
     }
 
+    @Override
+    public void setProjectId(int projectId) {
+        mProjectId = projectId;
+    }
+
     @Override
     public void onResume() {
         super.onResume();

+ 2 - 1
app/src/main/java/kr/co/hanwha/hifive/screen/main/project/MainProjectPresenter.java

@@ -99,7 +99,8 @@ public class MainProjectPresenter implements MainProjectContract.Presenter {
 
                     // SElECT DEFAULT PROJECT...
                     int project_id = response.get(0).getProject_id();
-                    setProjectId(project_id);
+                    if (mProject_id == 0)
+                        setProjectId(project_id);
 
                     mView.setEmptyView(false);
                 } else {

+ 13 - 3
app/src/main/java/kr/co/hanwha/hifive/util/HFNotiUtil.java

@@ -56,13 +56,18 @@ public class HFNotiUtil {
 
                 HFActivityUtil.startTaskDetailActivity((Activity) context, taskId, projectId, trackId);
             } else if (LandingType.MAIN_UNIT.getCode() == type) {
-                if (TextUtils.isEmpty(data.getValue1()) == false)
-                    projectId = Integer.parseInt(data.getValue1());
-                HFActivityUtil.startDashboardProjectActivity((Activity) context, projectId);
+//                if (TextUtils.isEmpty(data.getValue1()) == false)
+//                    projectId = Integer.parseInt(data.getValue1());
+//                HFActivityUtil.startDashboardProjectActivity((Activity) context, projectId);
             } else if (LandingType.MAIN_DASHBOARD_UNIT.getCode() == type) {
                 if (TextUtils.isEmpty(data.getValue1()) == false)
                     projectId = Integer.parseInt(data.getValue1());
                 HFActivityUtil.startDashboardProjectActivity((Activity) context, projectId);
+            } else if (LandingType.WEBVIEW.getCode() == type) {
+                String url = data.getValue1();
+                HFActivityUtil.startCommonWebViewActivity((Activity) context, url);
+            }else {
+                HFActivityUtil.startAlarmActivity((Activity) context);
             }
 
             int group_id = 0;
@@ -92,6 +97,11 @@ public class HFNotiUtil {
             } else if (LandingType.MAIN_DASHBOARD_UNIT.getCode() == type) {
                 int projectId = data.getProject_id();
                 HFActivityUtil.startDashboardProjectActivity((Activity) context, projectId);
+            } else if (LandingType.WEBVIEW.getCode() == type) {
+                String url = data.getUrl();
+                HFActivityUtil.startCommonWebViewActivity((Activity) context, url);
+            } else {
+                HFActivityUtil.startAlarmActivity((Activity) context);
             }
         }
     }