Просмотр исходного кода

[공통][Bug] 카카오톡 링크 액티비티를 스플래시 액티비티로 변경

hyodong.min 7 лет назад
Родитель
Сommit
5956434daf

+ 9 - 7
app/src/main/AndroidManifest.xml

@@ -28,23 +28,25 @@
 
         <category android:name="android.intent.category.LAUNCHER"/>
       </intent-filter>
+      <intent-filter>
+        <action android:name="android.intent.action.VIEW" />
+        <category android:name="android.intent.category.DEFAULT" />
+        <category android:name="android.intent.category.BROWSABLE" />
+        <data android:scheme="@string/kakao_scheme"
+              android:host="@string/kakaolink_host" />
+      </intent-filter>
     </activity>
+
     <activity
       android:name=".lifeplus.activity.LocationActivity"
       android:screenOrientation="portrait"
       android:windowSoftInputMode="adjustResize">
     </activity>
+
     <activity
       android:name=".lifeplus.activity.MainActivity"
       android:screenOrientation="portrait"
       android:windowSoftInputMode="adjustResize">
-      <intent-filter>
-        <action android:name="android.intent.action.VIEW" />
-        <category android:name="android.intent.category.DEFAULT" />
-        <category android:name="android.intent.category.BROWSABLE" />
-        <data android:scheme="@string/kakao_scheme"
-              android:host="@string/kakaolink_host" />
-      </intent-filter>
     </activity>
 
     <meta-data

+ 23 - 6
app/src/main/java/kr/co/zumo/app/lifeplus/activity/MainActivity.java

@@ -3,6 +3,7 @@
  */
 package kr.co.zumo.app.lifeplus.activity;
 
+import android.arch.lifecycle.ViewModelProviders;
 import android.os.Bundle;
 import android.support.annotation.CallSuper;
 import android.support.v7.app.AppCompatActivity;
@@ -11,8 +12,10 @@ import android.util.Log;
 import com.bumptech.glide.Glide;
 
 import kr.co.zumo.app.R;
-import kr.co.zumo.app.lifeplus.manager.ActionBarManager;
-import kr.co.zumo.app.lifeplus.manager.ActionButtonManager;
+import kr.co.zumo.app.lifeplus.application.App;
+import kr.co.zumo.app.lifeplus.helper.Helper;
+import kr.co.zumo.app.lifeplus.helper.ActionBarHelper;
+import kr.co.zumo.app.lifeplus.helper.ActionButtonHelper;
 import kr.co.zumo.app.lifeplus.model.SuperModel;
 import kr.co.zumo.app.lifeplus.supervisor.DialogHelper;
 import kr.co.zumo.app.lifeplus.supervisor.FragmentSkipBackChanger;
@@ -63,6 +66,7 @@ public class MainActivity extends AppCompatActivity {
 //      e.printStackTrace();
 //    }
 
+    new AppInitializer().init(App.getInstance().getContext());
 
     if (SuperModel.getInstance().isMember()) {
       ScreenIDMapper.getInstance().toMember().print();
@@ -75,10 +79,10 @@ public class MainActivity extends AppCompatActivity {
 
     // actionbar
     setSupportActionBar(findViewById(R.id.toolbar));
-    ActionBarManager.getInstance().init(this, this.getSupportActionBar(), findViewById(R.id.layout_app_bar), findViewById(R.id.container_main));
+    getHelper(ActionBarHelper.class).init(this, this.getSupportActionBar(), findViewById(R.id.layout_app_bar), findViewById(R.id.container_main));
 
     // floating action button
-    ActionButtonManager.getInstance().init(findViewById(R.id.floating_action_button));
+    getHelper(ActionButtonHelper.class).init(findViewById(R.id.floating_action_button));
 
     ScreenChangerHelper.getInstance().setAppCompatActivity(this);
     ScreenChangerHelper.getInstance().setContainerId(R.id.container_main);
@@ -100,8 +104,6 @@ public class MainActivity extends AppCompatActivity {
   protected void onDestroy() {
     Log.w("APP# MainActivity | onDestroy", "| <<<<<<<<<<<<< " + this.getClass().getSimpleName());
 
-    ActionBarManager.getInstance().destroy();
-    ActionButtonManager.getInstance().destroy();
     ScreenIDMapper.getInstance().destroy();
     
     Glide.get(this).clearMemory();
@@ -147,6 +149,21 @@ public class MainActivity extends AppCompatActivity {
     }
   }
 
+  @Override
+  protected void onSaveInstanceState(Bundle outState) {
+    super.onSaveInstanceState(outState);
+  }
+
+  /**
+   * 각종 Helper 객체를 반환한다.
+   * - Activity 에 종속되는 객체로 그 안에서 싱글톤처럼 사용.
+   *
+   * @param helperClass DeliveryHelper.class
+   * @return new DeliveryHelper() or exist object
+   */
+  public <H extends Helper> H getHelper(Class<H> helperClass) {
+    return ViewModelProviders.of(this).get(helperClass);
+  }
 }
 
 

+ 1 - 9
app/src/main/java/kr/co/zumo/app/lifeplus/activity/SplashActivity.java

@@ -14,11 +14,8 @@ import io.reactivex.disposables.CompositeDisposable;
 import io.reactivex.schedulers.Schedulers;
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.application.App;
-import kr.co.zumo.app.lifeplus.model.SuperModel;
-import kr.co.zumo.app.lifeplus.model.SuperModelInit;
 import kr.co.zumo.app.lifeplus.network.NetworkWatcher;
 import kr.co.zumo.app.lifeplus.supervisor.DialogHelper;
-import kr.co.zumo.app.lifeplus.util.AppUtil;
 import kr.co.zumo.app.lifeplus.util.PermissionUtil;
 
 /**
@@ -44,9 +41,8 @@ public class SplashActivity extends AppCompatActivity {
 
     DialogHelper.getInstance().setFragmentManager(getSupportFragmentManager());
     Context context = App.getInstance().getContext();
-    SuperModelInit.init(context);
 
-    setDeviceId(AppUtil.getDeviceId(context));
+    new AppInitializer().init(context);
 
     starter = new ScreenStarter(this);
 
@@ -65,10 +61,6 @@ public class SplashActivity extends AppCompatActivity {
     );
   }
 
-  private void setDeviceId(String deviceId) {
-    SuperModel.getInstance().setDeviceId(deviceId);
-  }
-
   @Override
   public void startActivity(Intent intent) {
     super.startActivity(intent);

+ 8 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/model/SuperModel.java

@@ -29,6 +29,12 @@ public final class SuperModel {
     return ourInstance;
   }
 
+  private boolean initialized = false;
+
+  public boolean isInitialized() {
+    return initialized;
+  }
+
   private String deviceUuid;
   private String userId;
   private String token;
@@ -52,6 +58,7 @@ public final class SuperModel {
     this.preferences = preferences;
     this.screenWidth = screenWidth;
     this.screenHeight = screenHeight;
+    initialized = true;
   }
 
   /**
@@ -91,7 +98,7 @@ public final class SuperModel {
    *
    * @return uuid
    */
-  public String getDeviceUuid() {
+  public String getDeviceId() {
     if (StringUtil.isEmpty(deviceUuid)) {
       deviceUuid = preferences.getDeviceUuid();
     }

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/network/api/ParameterMapper.java

@@ -29,7 +29,7 @@ public class ParameterMapper<T extends RequestBean> {
     SuperModel model = SuperModel.getInstance();
     bean.setAppVersion(AppUtil.getVersionName());
     bean.setSid(model.getUserId());
-    bean.setDeviceId(model.getDeviceUuid());
+    bean.setDeviceId(model.getDeviceId());
     bean.setToken(model.getToken());
     return bean;
   }

+ 1 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/auth/MobileAuthPresenter.java

@@ -31,7 +31,6 @@ import kr.co.zumo.app.lifeplus.view.dialog.DialogBuilder;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
 import kr.co.zumo.app.lifeplus.view.dialog.IAttribute;
 import kr.co.zumo.app.lifeplus.view.dialog.ICustomDialogListener;
-import kr.co.zumo.app.lifeplus.view.dialog.IDialogResultListener;
 import kr.co.zumo.app.lifeplus.view.dialog.WebDialog;
 
 /**
@@ -506,7 +505,7 @@ public class MobileAuthPresenter implements IMobileAuthContract.Presenter {
       bean.setNationality(userBean.getNationality());
       bean.setPhoneNumber(userBean.getFullPhoneNumber());
       bean.setBirthDate(userBean.getBirthDate());
-      bean.setDeviceUuid(SuperModel.getInstance().getDeviceUuid());
+      bean.setDeviceUuid(SuperModel.getInstance().getDeviceId());
       bean.setMobileCompany(userBean.getMobileCompany());
 
       disposable.add(