|
@@ -1,21 +1,23 @@
|
|
|
package com.dbs.mplus.knuh;
|
|
|
|
|
|
+import androidx.annotation.Nullable;
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
|
|
import android.Manifest;
|
|
|
import android.content.Context;
|
|
|
import android.content.Intent;
|
|
|
+import android.net.Uri;
|
|
|
import android.os.Bundle;
|
|
|
import android.os.Handler;
|
|
|
+import android.os.PowerManager;
|
|
|
+import android.provider.Settings;
|
|
|
import android.util.Log;
|
|
|
import android.view.View;
|
|
|
-import android.widget.Toast;
|
|
|
|
|
|
import com.dbs.mplus.knuh.activity.LoginActivity;
|
|
|
import com.dbs.mplus.knuh.customView.CustomAlertDialog;
|
|
|
import com.dbs.mplus.knuh.httpTask.CallBack;
|
|
|
import com.dbs.mplus.knuh.httpTask.HttpRunnable;
|
|
|
-import com.dbs.mplus.knuh.httpTask.HttpSoapConnection;
|
|
|
import com.dbs.mplus.knuh.util.ConsentConfig;
|
|
|
import com.dbs.mplus.knuh.util.Util;
|
|
|
import com.gun0912.tedpermission.PermissionListener;
|
|
@@ -23,7 +25,6 @@ import com.gun0912.tedpermission.TedPermission;
|
|
|
|
|
|
import org.ksoap2.serialization.SoapObject;
|
|
|
|
|
|
-import java.net.HttpCookie;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
|
|
@@ -108,7 +109,7 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
|
|
int version = Integer.parseInt(ConsentConfig.SETTING_DATA.get("MOBILE_VERSION"));
|
|
|
int appVersion = BuildConfig.VERSION_CODE;
|
|
|
- if (version == appVersion) {
|
|
|
+ if (version <= appVersion) {
|
|
|
permissionCheck();
|
|
|
} else {
|
|
|
runOnUiThread(new Runnable() {
|
|
@@ -174,7 +175,8 @@ public class MainActivity extends AppCompatActivity {
|
|
|
PermissionListener permissionListener = new PermissionListener() {
|
|
|
@Override
|
|
|
public void onPermissionGranted() {
|
|
|
- nextActivity();
|
|
|
+// nextActivity();
|
|
|
+ whiteListCheck();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -186,10 +188,62 @@ public class MainActivity extends AppCompatActivity {
|
|
|
.setPermissionListener(permissionListener)
|
|
|
.setRationaleMessage(getString(R.string.permissionCheck))
|
|
|
.setDeniedMessage(getString(R.string.permissionDenied))
|
|
|
- .setPermissions(android.Manifest.permission.READ_EXTERNAL_STORAGE, android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.READ_PHONE_STATE)
|
|
|
+ .setPermissions(
|
|
|
+ android.Manifest.permission.READ_EXTERNAL_STORAGE,
|
|
|
+ android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
|
|
+ android.Manifest.permission.ACCESS_FINE_LOCATION,
|
|
|
+ Manifest.permission.READ_PHONE_STATE
|
|
|
+ )
|
|
|
.check();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 앱 배터리 사용량 최적화 모드 체크
|
|
|
+ * 최적화 모드 중지될 때 까지 무한루프
|
|
|
+ * 2020.11.17
|
|
|
+ * jmRyu
|
|
|
+ * Start
|
|
|
+ */
|
|
|
+ private void whiteListCheck() {
|
|
|
+ PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
|
|
|
+ // 패키지 명으로 최적화 모드 사용 여부 체크 ( 최적화 모드 사용 상태 = false, 최적화 모드 중지 상태 = true )
|
|
|
+ boolean isPowered = powerManager.isIgnoringBatteryOptimizations(mContext.getPackageName());
|
|
|
+ if (isPowered) {
|
|
|
+ nextActivity();
|
|
|
+ } else {
|
|
|
+ setWhiteList();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 배터리 사용량 최적화 중지 System Setting Alert 호출
|
|
|
+ */
|
|
|
+ private void setWhiteList() {
|
|
|
+ csAlert.show();
|
|
|
+ csAlert.setContent(mContext.getString(R.string.whiteList), ConsentConfig.ALERT_BTN_TYPE);
|
|
|
+ csAlert.btnConfirm2.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ csAlert.dismiss();
|
|
|
+ Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
|
|
|
+ intent.setData(Uri.parse("package:" + mContext.getPackageName()));
|
|
|
+ startActivityForResult(intent, 0);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * line 234: startActivityForResult
|
|
|
+ * System Setting Alert 에서 result 를 받았을때 다시 체크로직 수행
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
|
+ super.onActivityResult(requestCode, resultCode, data);
|
|
|
+
|
|
|
+ if (requestCode == 0) {
|
|
|
+ whiteListCheck();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
private void nextActivity() {
|
|
|
new Handler().postDelayed(new Runnable() {
|