diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/MainActivity.kt b/app/src/main/java/jp/atled/agileworks/view/ui/MainActivity.kt index 6b44eb2f265885612cbeb36bad0168dadea6e810..eefb503b9616e3461efd7008bf89bb8d86e0b41b 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/MainActivity.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/MainActivity.kt @@ -8,7 +8,6 @@ import android.content.res.Configuration import android.os.Build import android.os.Bundle import android.util.Log -import android.view.View import android.widget.TextView import androidx.annotation.RequiresApi import androidx.annotation.StringRes @@ -30,7 +29,6 @@ import jp.atled.agileworks.model.DeviceInfoRepository import jp.atled.agileworks.model.FcmRepository import jp.atled.agileworks.view.ui.documentweb.DocumentWebFragment import jp.atled.agileworks.view.ui.login.LoginUtil -import jp.atled.agileworks.view.utils.putNonDefaultIntFromExtra import jp.atled.agileworks.view.utils.putNonNullStingFromExtra import kotlinx.android.synthetic.main.activity_main.* @@ -68,21 +66,19 @@ class MainActivity : AppCompatActivity() { } private fun followDeepLink() { - // TODO ウィジェットタップ時の情報伝達実装 - val deepApprove = intent.getStringExtra(APPROVAL_DEEPLINK_CODE_KEY) - //if ((0 <= deepApprove) && (deepApprove <= 4)) { - // TODO deeplink 先ジャンプ未実装 (AW3) - /* - NavDeepLinkBuilder(this) - .setGraph(R.navigation.nav_approval) - .setDestination(R.id.approvalItemListFragment) - .setArguments(bundleOf( - "approval_item_list_title" to getString(R.string.main_label_approval) + " > " + intent.getStringExtra(APPROVAL_DEEPLINK_NAME_KEY).orEmpty(), - "approval_major_id" to deepApprove - )) - .createPendingIntent().send() - */ - //} + // ウィジェットタップ時の情報伝達 + val deepApproveUrl = intent.getStringExtra(APPROVAL_DEEPLINK_URL_KEY) + if (!deepApproveUrl.isNullOrEmpty()) { + intent.putExtra("url", deepApproveUrl) + + val approvalFragment = DocumentWebFragment() + approvalFragment.arguments = intent.extras + + supportFragmentManager.beginTransaction() + .addToBackStack(null) + .replace(R.id.main_nav_fragment, approvalFragment) + .commit() + } } private fun setupNotification() { @@ -196,6 +192,7 @@ class MainActivity : AppCompatActivity() { companion object { const val APPROVAL_DEEPLINK_CODE_KEY = "main:deeplink:approval:code" const val APPROVAL_DEEPLINK_NAME_KEY = "main:deeplink:approval:name" + const val APPROVAL_DEEPLINK_URL_KEY = "approvalDeeplinkUrl" fun start(context: Context, bundle: Bundle?) = context.startActivity(startIntent(context, bundle)) @@ -214,4 +211,5 @@ fun Fragment.updateToolbarCount(count: Int) { fun Intent.toDeepLinkArguments() = Bundle().apply { putNonNullStingFromExtra(this@toDeepLinkArguments, MainActivity.APPROVAL_DEEPLINK_CODE_KEY) putNonNullStingFromExtra(this@toDeepLinkArguments, MainActivity.APPROVAL_DEEPLINK_NAME_KEY) + putNonNullStingFromExtra(this@toDeepLinkArguments, MainActivity.APPROVAL_DEEPLINK_URL_KEY) } \ No newline at end of file diff --git a/app/src/main/java/jp/atled/agileworks/widget/AwAppWidget.kt b/app/src/main/java/jp/atled/agileworks/widget/AwAppWidget.kt index c41a1b5b9aac4dd068d92c638e1f4c30c026b286..e0b19c0b55291c12064decc72474cc7abc16c9c6 100644 --- a/app/src/main/java/jp/atled/agileworks/widget/AwAppWidget.kt +++ b/app/src/main/java/jp/atled/agileworks/widget/AwAppWidget.kt @@ -43,7 +43,7 @@ sealed class AwAppWidgetBase(private val widgetLayoutId: Int, private val approv request.build()) appWidgetIds.forEach { appWidgetId -> - val views: RemoteViews = RemoteViews( + val views = RemoteViews( context.packageName, widgetLayoutId ) @@ -56,7 +56,7 @@ sealed class AwAppWidgetBase(private val widgetLayoutId: Int, private val approv } views.setRemoteAdapter(R.id.widgetGridView, intent) - val clickIntentTemplate: Intent = Intent(context, LoginActivity::class.java) + val clickIntentTemplate = Intent(context, LoginActivity::class.java) val clickPendingIntentTemplate: PendingIntent = TaskStackBuilder.create(context) .addNextIntentWithParentStack(clickIntentTemplate) .getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT) diff --git a/app/src/main/java/jp/atled/agileworks/widget/AwAppWidgetCell.kt b/app/src/main/java/jp/atled/agileworks/widget/AwAppWidgetCell.kt index 6caab3704951a2a8aafab9813f6ea397bcdfb74e..39730c8fb20f3758e434e5af643f840365fc8607 100644 --- a/app/src/main/java/jp/atled/agileworks/widget/AwAppWidgetCell.kt +++ b/app/src/main/java/jp/atled/agileworks/widget/AwAppWidgetCell.kt @@ -9,7 +9,8 @@ import com.squareup.moshi.JsonClass data class AwAppWidgetCell( val code: String, val name: String, - val count: Int + val count: Int, + val url: String ) {} /** diff --git a/app/src/main/java/jp/atled/agileworks/widget/AwAppWidgetRemoteViewsFactory.kt b/app/src/main/java/jp/atled/agileworks/widget/AwAppWidgetRemoteViewsFactory.kt index 177697a2e13389d05fb9dacd2d812a709d37964f..230d103665580b4b14ce706c5b835c8593200797 100644 --- a/app/src/main/java/jp/atled/agileworks/widget/AwAppWidgetRemoteViewsFactory.kt +++ b/app/src/main/java/jp/atled/agileworks/widget/AwAppWidgetRemoteViewsFactory.kt @@ -6,6 +6,7 @@ import android.util.Log import android.view.View import android.widget.RemoteViews import android.widget.RemoteViewsService +import jp.atled.agileworks.AwApp import jp.atled.agileworks.R import jp.atled.agileworks.common.util.toFormattedString import jp.atled.agileworks.model.ApprovalInfo @@ -58,6 +59,7 @@ class AwAppWidgetRemoteViewsFactory(applicationContext: Context, intent: Intent? if (item != null) { putExtra(MainActivity.APPROVAL_DEEPLINK_NAME_KEY, item.name) putExtra(MainActivity.APPROVAL_DEEPLINK_CODE_KEY, item.code) + putExtra(MainActivity.APPROVAL_DEEPLINK_URL_KEY, item.url) } } @@ -139,7 +141,8 @@ class AwAppWidgetRemoteViewsFactory(applicationContext: Context, intent: Intent? val item = AwAppWidgetCell( code = approvalInfoItem.code, name = approvalInfoItem.name, - count = approvalInfoItem.count + count = approvalInfoItem.count, + url = getTransitionDestinationUrl(approvalInfoItem.code) ) itemList.add(item) } @@ -169,6 +172,35 @@ class AwAppWidgetRemoteViewsFactory(applicationContext: Context, intent: Intent? } } + private fun getTransitionDestinationUrl(approvalInfoCode: String): String { + val baseUrl = AwApp.Baseurl() + "Broker/Mobile" + val debugUrl = AwApp.Baseurl() + "Broker/Document" // ToDo 仮URL設定用 削除予定 + + // ToDo URL設定(エイトレッドさん検討中) + // 仮URL設定(仕事画面に遷移する) + when (approvalInfoCode) { + //ApprovalInfo.NOTIFICATION_MESSAGE -> {return "$baseUrl#" } // 通知メッセージ + ApprovalInfo.NOTIFICATION_MESSAGE -> {return "$debugUrl?DocId=171" } // 通知メッセージ + ApprovalInfo.DRAFT -> {return "$baseUrl#work" } // 下書き + ApprovalInfo.REQUEST_APPLICATION -> {return "$baseUrl#agileWorksSearch" } // 申請依頼 + //ApprovalInfo.REQUEST_APPROVAL -> {return "$baseUrl#" } // 承認依頼 + ApprovalInfo.REQUEST_APPROVAL -> {return "$debugUrl?DocId=166" } // 承認依頼 + //ApprovalInfo.REMAND -> {return "$baseUrl#" } // 差戻し + ApprovalInfo.REMAND -> {return "$debugUrl?DocId=164" } // 差戻し + //ApprovalInfo.CHECK_REPORT -> {return "$baseUrl#" } // 報告確認 + ApprovalInfo.CHECK_REPORT -> {return "$debugUrl?DocId=167" } // 報告確認 + //ApprovalInfo.DEMAND -> {return "$baseUrl#" } // 督促あり + ApprovalInfo.DEMAND -> {return "$debugUrl?DocId=168" } // 督促あり + // ToDo API修正待ち + //ApprovalInfo.CIRCULATION -> {return "$baseUrl#" } // 回付予定 + //ApprovalInfo.SHARE -> {return "$baseUrl#" } // 共有した + ApprovalInfo.SHARE -> {return "$debugUrl?DocId=169" } // 共有した + //ApprovalInfo.SHARED -> {return "$baseUrl#" } // 共有された + ApprovalInfo.SHARED -> {return "$debugUrl?DocId=170" } // 共有された + else -> {return ""} + } + } + companion object { const val EXTRA_APPROVAL_FILTER_CODES = "jp.atled.agileworks.widget.EXTRA_APPROVAL_FILTER_CODES" } diff --git a/app/src/main/java/jp/atled/agileworks/widget/WidgetUpdate.kt b/app/src/main/java/jp/atled/agileworks/widget/WidgetUpdate.kt index 0a3a4bacbb660f894d374a59ea89c718febcbb03..81505dddc37b262b6576b7a0b5c475d7d083cde9 100644 --- a/app/src/main/java/jp/atled/agileworks/widget/WidgetUpdate.kt +++ b/app/src/main/java/jp/atled/agileworks/widget/WidgetUpdate.kt @@ -14,7 +14,7 @@ object WidgetUpdate { fun update() { val manager: AppWidgetManager = AppWidgetManager.getInstance(AwApp.instance.applicationContext) for (widgetClass in WIDGET_CLASSES) { - val myWidget: ComponentName = ComponentName(AwApp.instance.applicationContext, widgetClass) + val myWidget = ComponentName(AwApp.instance.applicationContext, widgetClass) val appWidgetIds: IntArray = manager.getAppWidgetIds(myWidget) manager.notifyAppWidgetViewDataChanged(appWidgetIds, R.id.widgetGridView) }