فهرست منبع

[메인][Common] 날씨 위치권한 다시보지않음 클릭 이후 설정 이동 다이얼로그 띄움

Hasemi 6 سال پیش
والد
کامیت
8dd3ff617f

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

@@ -31,4 +31,6 @@ public interface IMainView extends IView {
 
   void updateWeather(String weatherCode, String dustCode, String areaName);
 
+  void goSettingPermission();
+
 }

+ 11 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainFragment.java

@@ -5,8 +5,11 @@ package kr.co.zumo.app.lifeplus.view.screen.main;
 
 import android.Manifest;
 import android.animation.ObjectAnimator;
+import android.content.Intent;
 import android.content.pm.PackageManager;
+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.constraint.ConstraintLayout;
@@ -314,6 +317,14 @@ public class MainFragment extends FragmentBase<MainPresenter> implements IMainVi
     adapter.updateWeather(weatherCode, dustCode, areaName);
   }
 
+  @Override
+  public void goSettingPermission() {
+    Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
+      .setData(Uri.parse("package:" + getContext().getPackageName()))
+      .addCategory(Intent.CATEGORY_DEFAULT);
+    startActivity(intent);
+  }
+
   @Override
   public void requestLocationPermissions(@NonNull String[] permissions) {
     Log.i("APP# MainFragment | requestLocationPermissions", "|" + " permissions: " + Arrays.toString(permissions));

+ 29 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainPresenter.java

@@ -278,7 +278,7 @@ public class MainPresenter extends Presenter<MainModel, IMainView> {
         scrollToFront();
         break;
       case Event.DIALOG:
-        openLocationSettingDialog();
+        showPermissionCheckDialog();
         break;
     }
   }
@@ -385,6 +385,7 @@ public class MainPresenter extends Presenter<MainModel, IMainView> {
       else {
         // permission denied -> nothing
         // fixme 다시 묻지 않기 눌렀을 때 여기에서 멈춤
+
       }
     }
     else {
@@ -479,6 +480,33 @@ public class MainPresenter extends Presenter<MainModel, IMainView> {
     home();
   }
 
+  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.setTitleId(R.string.weather_permission_alert_title);
+        dialog.setText(ResourceUtil.getString(R.string.weather_permission_alert_contents));
+        dialog.setPositiveButtonLabelId(R.string.weather_permission_alert_positive);
+        dialog.setNegativeButtonLabelId(R.string.weather_permission_alert_negative);
+      })
+      .show();
+  }
+
   private void showPromotionPopup() {
 
     if (false == model.isVisiblePromotion() || null == model.getPromotionPopupBeans() || model.getPromotionPopupBeans().size() < 1) {

+ 10 - 2
app/src/main/res/values/strings.xml

@@ -23,9 +23,17 @@
 
   <!--앨범접근권한 허용 알럿-->
   <string name="album_permission_alert_title">앨범 접근 허용</string>
-  <string name="album_permission_alert_contents">앨범 사진을 사용을 위해서 설정이 필요합니다.\n위치 설정을 변경하시겠어요?</string>
+  <string name="album_permission_alert_contents">앨범 사진을 사용하려면 `앨범` 접근 권한을 허용해야 합니다.</string>
   <string name="album_permission_alert_negative">취소</string>
   <string name="album_permission_alert_positive">설정으로 이동</string>
+
+
+  <!--날씨ㅣ접근권한 허용 알럿-->
+  <string name="weather_permission_alert_title">위치 접근 허용</string>
+  <string name="weather_permission_alert_contents">Lifeplus app에서 현재 위치 정보를 사용하는데 동의하시겠어요?</string>
+  <string name="weather_permission_alert_negative">취소</string>
+  <string name="weather_permission_alert_positive">설정으로 이동</string>
+
   <!--페이스북-->
   <!--<string name="facebook_app_id">252658048750865</string>--> <!--test id-->
   <string name="facebook_app_id">1010954478934932</string>  <!-- zumo -->
@@ -527,7 +535,7 @@
   <string name="notice_category_news">소식</string>
   <string name="notice_category_notice">공지</string>
   <string name="notice_news_delete">알림을 삭제하시겠어요?</string>
-  <string name= "notice_nothing">공지사항이 없습니다.</string>
+  <string name="notice_nothing">공지사항이 없습니다.</string>
   <!--메인의 날씨-->
   <string name="weather_area">"지금 %s"</string>
   <string name="weather_sunny">맑음입니다</string>