Procházet zdrojové kódy

[이벤트][Common] 권한설정 다시보지않음 클릭시 커스텀 다이얼로그 띄움

Hasemi před 6 roky
rodič
revize
38ea602873

+ 0 - 39
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/event/CaptureImageView.java

@@ -1,39 +0,0 @@
-package kr.co.zumo.app.lifeplus.view.custom.event;
-
-import android.content.Context;
-import android.support.constraint.ConstraintLayout;
-import android.util.AttributeSet;
-
-/**
- * CaptureImageView
- * <pre>
- * </pre>
- *
- * @author 하세미
- * @version 1.0
- * @history 하세미   [2019-01-30]   [최초 작성]
- * @since 2019-01-30
- */
-public class CaptureImageView extends ConstraintLayout {
-
-  private Context context;
-
-  public CaptureImageView(Context context) {
-    super(context);
-    this.context = context;
-  }
-
-  public CaptureImageView(Context context, AttributeSet attrs) {
-    super(context, attrs);
-    this.context = context;
-  }
-
-  public CaptureImageView(Context context, AttributeSet attrs, int defStyleAttr) {
-    super(context, attrs, defStyleAttr);
-    this.context = context;
-  }
-
-  public void draw(){
-
-  }
-}

+ 13 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/event/EventParticipationFragment.java

@@ -7,8 +7,10 @@ import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.net.Uri;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.support.v4.app.ActivityCompat;
 import android.support.v4.content.ContextCompat;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -111,6 +113,13 @@ public class EventParticipationFragment extends FragmentBase<EventParticipationP
     }
   }
 
+  @Override
+  public void goSettingPermission() {
+    Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
+      .setData(Uri.parse("package:" + getContext().getPackageName()));
+    startActivity(intent);
+  }
+
   @Override
   public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
     switch (requestCode) {
@@ -119,7 +128,10 @@ public class EventParticipationFragment extends FragmentBase<EventParticipationP
           getAlbumImage();
         }
         else {
-          Log.e("APP#  EventParticipationFragment | onRequestPermissionsResult", "|" + "거부 눌렀음");
+          if (false == ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE)) {
+            // TODO: 추후 기획 반영 임시로 다시보지 않음 클릭 후 커스텀 알럿 띄움
+            presenter.onEvent(new Event.Builder(Event.DIALOG).build());
+          }
         }
         break;
       default:
@@ -140,7 +152,6 @@ public class EventParticipationFragment extends FragmentBase<EventParticipationP
   @Override
   public void onActivityResult(int requestCode, int resultCode, Intent data) {
     if (requestCode == GET_ALBUM_PHOTO) {
-      Log.e("APP#  EventParticipationFragment | onActivityResult", "|" + "--");
       try {
         Uri uri = data.getData();
         Log.e("APP#  EventParticipationFragment | onActivityResult", "|" + uri);

+ 36 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/event/EventParticipationPresenter.java

@@ -1,8 +1,14 @@
 package kr.co.zumo.app.lifeplus.view.screen.event;
 
+import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.helper.NavigationBar;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
+import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.dialog.ConfirmDialog;
+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.ICustomConfirmListener;
 import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
 
 /**
@@ -69,12 +75,15 @@ public class EventParticipationPresenter extends Presenter<EventParticipationMod
   @Override
   protected void onEventInternal(Event event) {
     switch (event.getEventId()) {
-      case Event.SHARE: //캡쳐 추가
+      case Event.SHARE: //캡쳐 추가 버튼 클릭
         view.checkPermission();
         break;
       case Event.IMAGE: //이미지 가져오기성공
         view.uploadAlbumImage();
         break;
+        case Event.DIALOG: //권한 설정 완전 거부시 다이얼로그 임시
+        showPermissionCheckDialog();
+        break;
       default:
         break;
     }
@@ -94,4 +103,30 @@ public class EventParticipationPresenter extends Presenter<EventParticipationMod
   public void onNavigationClickClose(NavigationBar navigationBar) {
     onBackPressed();
   }
+
+  private void showPermissionCheckDialog() {
+    new DialogBuilder<ConfirmDialog, ICustomConfirmListener>(getFragmentManager(), DialogID.CONFIRM)
+      .listener(new ICustomConfirmListener<ConfirmDialog>() {
+        @Override
+        public void onPositiveResult(ConfirmDialog dialog, Event event) {
+          view.goSettingPermission();
+        }
+
+        @Override
+        public void onNegativeResult(ConfirmDialog dialog, Event event) {
+          dialog.dispose();
+        }
+
+        @Override
+        public void onDialogCanceled(ConfirmDialog dialog) {
+          dialog.dispose();
+        }
+      })
+      .attribute(dialog -> {
+        dialog.setText(ResourceUtil.getString(R.string.album_permission_alert_contents));
+        dialog.setPositiveButtonLabelId(R.string.album_permission_alert_positive);
+        dialog.setNegativeButtonLabelId(R.string.album_permission_alert_negative);
+      })
+      .show();
+  }
 }

+ 2 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/event/IEventParticipationView.java

@@ -20,4 +20,6 @@ public interface IEventParticipationView extends IView {
 
   void checkPermission();
 
+  void goSettingPermission();
+
 }

+ 3 - 1
app/src/main/res/layout/capture_image_view.xml

@@ -7,8 +7,10 @@
   android:layout_height="80dp"
   android:layout_marginStart="5dp"
   android:layout_marginEnd="5dp"
+  app:layout_constraintBottom_toBottomOf="parent"
   app:layout_constraintEnd_toEndOf="parent"
-  app:layout_constraintStart_toStartOf="parent">
+  app:layout_constraintStart_toStartOf="parent"
+  app:layout_constraintTop_toTopOf="parent">
 
   <android.support.constraint.ConstraintLayout
     android:layout_width="73dp"