Merge pull request 'refactor/refactor' (#151) from refactor/refactor into main
Reviewed-on: #151
This commit is contained in:
commit
61c46b12f6
|
@ -1,8 +1,12 @@
|
|||
package one.nem.kidshift;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.annotation.NonNull;
|
||||
|
@ -20,6 +24,8 @@ import androidx.navigation.ui.AppBarConfiguration;
|
|||
import androidx.navigation.ui.NavigationUI;
|
||||
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.google.android.material.divider.MaterialDivider;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
import com.google.android.material.navigation.NavigationView;
|
||||
|
||||
|
@ -29,6 +35,7 @@ import dagger.hilt.android.AndroidEntryPoint;
|
|||
import one.nem.kidshift.data.UserSettings;
|
||||
import one.nem.kidshift.feature.child.ChildManageMainActivity;
|
||||
import one.nem.kidshift.utils.FabManager;
|
||||
import one.nem.kidshift.utils.FeatureFlag;
|
||||
import one.nem.kidshift.utils.KSLogger;
|
||||
import one.nem.kidshift.utils.factory.KSLoggerFactory;
|
||||
|
||||
|
@ -41,6 +48,10 @@ public class MainActivity extends AppCompatActivity {
|
|||
@Inject
|
||||
FabManager fabManager;
|
||||
|
||||
@Inject
|
||||
FeatureFlag featureFlag;
|
||||
|
||||
|
||||
private KSLogger logger;
|
||||
|
||||
private FloatingActionButton fab;
|
||||
|
@ -63,7 +74,6 @@ public class MainActivity extends AppCompatActivity {
|
|||
setSupportActionBar(toolbar);
|
||||
|
||||
DrawerLayout drawerLayout = findViewById(R.id.drawerLayout);
|
||||
drawerLayout.open();
|
||||
|
||||
// アイテムが選択されたときの処理
|
||||
NavigationView navigationView = findViewById(R.id.navigationView);
|
||||
|
@ -75,6 +85,11 @@ public class MainActivity extends AppCompatActivity {
|
|||
Intent intent = new Intent(MainActivity.this, ChildManageMainActivity.class);
|
||||
startActivity(intent);
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.show_debug_dialog) {
|
||||
showDebugDialog();
|
||||
return true;
|
||||
} else {
|
||||
logger.warn("不明なアイテム: " + item.getItemId());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -116,6 +131,10 @@ public class MainActivity extends AppCompatActivity {
|
|||
|
||||
fab = findViewById(R.id.mainFab);
|
||||
fabManager.setFab(fab);
|
||||
|
||||
// Apply feature flag
|
||||
if (!featureFlag.isEnabled("showDebugMenu"))
|
||||
bottomNavigationView.getMenu().removeItem(R.id.feature_debug_navigation);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -124,4 +143,55 @@ public class MainActivity extends AppCompatActivity {
|
|||
private void startup() {
|
||||
|
||||
}
|
||||
|
||||
private void showDebugDialog() {
|
||||
|
||||
ScrollView scrollView = new ScrollView(this);
|
||||
scrollView.setPadding(32, 16, 32, 16);
|
||||
LinearLayout linearLayout = new LinearLayout(this);
|
||||
|
||||
TextView serverAddressTextView = new TextView(this);
|
||||
serverAddressTextView.setText("サーバーアドレス: " + userSettings.getApiSetting().getApiBaseUrl());
|
||||
serverAddressTextView.setTextSize(16);
|
||||
|
||||
TextView accessTokenTextView = new TextView(this);
|
||||
accessTokenTextView.setText("アクセストークン: " + userSettings.getAppCommonSetting().getAccessToken());
|
||||
accessTokenTextView.setTextSize(16);
|
||||
|
||||
TextView childModeTextView = new TextView(this);
|
||||
childModeTextView.setText("子供モード: " + userSettings.getAppCommonSetting().isChildMode());
|
||||
childModeTextView.setTextSize(16);
|
||||
|
||||
linearLayout.setOrientation(LinearLayout.VERTICAL);
|
||||
linearLayout.addView(serverAddressTextView);
|
||||
linearLayout.addView(createDivider(this));
|
||||
linearLayout.addView(accessTokenTextView);
|
||||
linearLayout.addView(createDivider(this));
|
||||
linearLayout.addView(childModeTextView);
|
||||
|
||||
scrollView.addView(linearLayout);
|
||||
|
||||
new MaterialAlertDialogBuilder(this)
|
||||
.setTitle("参考情報(評価用)")
|
||||
.setView(scrollView)
|
||||
.setPositiveButton("OK", (dialog, which) -> {
|
||||
// Do nothing
|
||||
})
|
||||
.show();
|
||||
|
||||
}
|
||||
|
||||
private MaterialDivider createDivider(Context context) {
|
||||
MaterialDivider divider = new MaterialDivider(context);
|
||||
// Margin (48, 16, 48, 16)
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT,
|
||||
LinearLayout.LayoutParams.WRAP_CONTENT
|
||||
);
|
||||
params.setMargins(48, 16, 48, 16);
|
||||
divider.setLayoutParams(params);
|
||||
return divider;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -16,11 +16,6 @@
|
|||
android:icon="@drawable/developer_mode_24px"
|
||||
android:title="Debug" />
|
||||
|
||||
<item
|
||||
android:id="@+id/feature_setting_navigation"
|
||||
android:icon="@drawable/settings_24px"
|
||||
android:title="Setting" />
|
||||
|
||||
<item
|
||||
android:id="@+id/feature_wallet_parent_navigation"
|
||||
android:icon="@drawable/wallet_24px"
|
||||
|
|
|
@ -2,6 +2,17 @@
|
|||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:id="@+id/manage_child_account"
|
||||
android:icon="@drawable/pending_24px"
|
||||
android:icon="@drawable/manage_accounts_24px"
|
||||
android:title="子供アカウントの管理" />
|
||||
|
||||
<!-- Divider -->
|
||||
<item
|
||||
android:id="@+id/divider"
|
||||
android:title=""
|
||||
android:enabled="false" />
|
||||
|
||||
<item
|
||||
android:id="@+id/show_debug_dialog"
|
||||
android:icon="@drawable/developer_mode_24px"
|
||||
android:title="デバッグ情報" />
|
||||
</menu>
|
||||
|
|
|
@ -2,11 +2,10 @@
|
|||
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/main_nav"
|
||||
app:startDestination="@id/feature_debug_navigation">
|
||||
app:startDestination="@id/feature_parent_navigation">
|
||||
|
||||
<include app:graph="@navigation/feature_debug_navigation" />
|
||||
<include app:graph="@navigation/feature_child_navigation" />
|
||||
<include app:graph="@navigation/feature_parent_navigation" />
|
||||
<include app:graph="@navigation/feature_setting_navigation" />
|
||||
<include app:graph="@navigation/feature_wallet_parent_navigation" />
|
||||
</navigation>
|
|
@ -179,6 +179,7 @@ public class CommonHomeFragment extends Fragment {
|
|||
private void showChildSelectDialog(String taskId, String taskName) { // TODO: Assignされている子供かどうかを考慮するように
|
||||
RecyclerView childListRecyclerView = new RecyclerView(requireContext());
|
||||
childListRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
childListRecyclerView.setPadding(0, 48, 0, 0);
|
||||
// TODO: キャッシュから取得する方にする?
|
||||
childData.getChildListDirect().thenAccept(childModelList -> {
|
||||
ChildListItemAdapter childListItemAdapter = new ChildListItemAdapter(childModelList);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package one.nem.kidshift.feature.common.adapter;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
|
@ -37,7 +38,7 @@ public class ChildListItemAdapter extends RecyclerView.Adapter<ChildListItemAdap
|
|||
@NonNull
|
||||
@Override
|
||||
public ChildListItemAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = View.inflate(parent.getContext(), R.layout.list_item_task_completion_child, null);
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_task_completion_child, parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="12dp">
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:layout_marginVertical="8dp">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/textContainer"
|
||||
|
@ -16,7 +17,6 @@
|
|||
android:id="@+id/task_title_text_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:text="お手伝い名"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Display1"
|
||||
android:textSize="20sp"
|
||||
|
@ -27,7 +27,6 @@
|
|||
android:id="@+id/task_contents_text_view"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_marginTop="13dp"
|
||||
android:text="円/回"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:layout_marginVertical="4dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
android:layout_height="wrap_content"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tabMode="scrollable">
|
||||
|
||||
</com.google.android.material.tabs.TabLayout>
|
||||
|
||||
|
|
10
shared/src/main/res/drawable/account_box_24px.xml
Normal file
10
shared/src/main/res/drawable/account_box_24px.xml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M200,721.69Q254,668.69 325.5,638.19Q397,607.69 480,607.69Q563,607.69 634.5,638.19Q706,668.69 760,721.69L760,212.31Q760,207.69 756.15,203.85Q752.31,200 747.69,200L212.31,200Q207.69,200 203.85,203.85Q200,207.69 200,212.31L200,721.69ZM480,521.54Q534.15,521.54 572.08,483.62Q610,445.69 610,391.54Q610,337.39 572.08,299.46Q534.15,261.54 480,261.54Q425.85,261.54 387.92,299.46Q350,337.39 350,391.54Q350,445.69 387.92,483.62Q425.85,521.54 480,521.54ZM212.31,820Q182,820 161,799Q140,778 140,747.69L140,212.31Q140,182 161,161Q182,140 212.31,140L747.69,140Q778,140 799,161Q820,182 820,212.31L820,747.69Q820,778 799,799Q778,820 747.69,820L212.31,820ZM257.69,760L702.31,760Q702.31,757.38 702.31,755.77Q702.31,754.15 702.31,751.54Q654.92,709.23 598.35,688.46Q541.77,667.69 480,667.69Q419,667.69 362.23,688.27Q305.46,708.85 257.69,750.77Q257.69,753.38 257.69,755.38Q257.69,757.38 257.69,760ZM480,461.54Q451.15,461.54 430.58,440.96Q410,420.39 410,391.54Q410,362.69 430.58,342.12Q451.15,321.54 480,321.54Q508.85,321.54 529.42,342.12Q550,362.69 550,391.54Q550,420.39 529.42,440.96Q508.85,461.54 480,461.54ZM480,460.85L480,460.85Q480,460.85 480,460.85Q480,460.85 480,460.85L480,460.85Q480,460.85 480,460.85Q480,460.85 480,460.85L480,460.85Q480,460.85 480,460.85Q480,460.85 480,460.85Q480,460.85 480,460.85Q480,460.85 480,460.85Z"/>
|
||||
</vector>
|
10
shared/src/main/res/drawable/manage_accounts_24px.xml
Normal file
10
shared/src/main/res/drawable/manage_accounts_24px.xml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M400,467.69Q342.25,467.69 301.13,426.57Q260,385.44 260,327.69Q260,269.94 301.13,228.82Q342.25,187.69 400,187.69Q457.75,187.69 498.87,228.82Q540,269.94 540,327.69Q540,385.44 498.87,426.57Q457.75,467.69 400,467.69ZM100,711.54L100,683.38Q100,653.08 115.66,628.5Q131.31,603.92 158.62,590.08Q212.77,562.62 270.86,547.46Q328.95,532.31 389.85,532.31L395.62,532.31Q408.37,532.31 416.99,541.28Q425.61,550.26 425.61,562.98Q425.61,575.69 416.99,584.31Q408.37,592.92 395.62,592.92Q394.08,592.92 392.73,592.92Q391.38,592.92 389.85,592.92Q335.72,592.92 284.98,605.96Q234.23,619 186.15,644Q174.62,650.15 167.31,660.31Q160,670.46 160,683.38L160,712.31L395.62,712.31Q408.37,712.31 416.99,720.94Q425.61,729.56 425.61,742.32Q425.61,755.08 416.99,763.69Q408.37,772.31 395.62,772.31L160.77,772.31Q135.46,772.31 117.73,754.58Q100,736.84 100,711.54ZM640.15,778.77L635.31,748.84Q621,744.61 608.38,737.77Q595.77,730.92 584.38,720.61L554.62,731.54Q545.08,734.77 536.18,731.14Q527.29,727.51 522.31,719.54L517,710.15Q511.92,701.61 513.36,691.54Q514.8,681.47 522.69,675L546.62,656Q542.31,640.46 542.31,625.38Q542.31,610.31 546.62,594.77L523.08,575Q515.16,568.69 513.54,559.04Q511.92,549.38 517,540.85L522.92,530.85Q528.01,522.87 536.74,519.24Q545.46,515.62 555,518.85L584.38,529.77Q595.38,519.46 608.19,512.81Q621,506.15 635.31,501.92L640.15,471.38Q642,461.23 649.62,455.04Q657.23,448.85 667.38,448.85L678,448.85Q688.15,448.85 695.77,455.35Q703.38,461.85 705.23,472L709.69,501.92Q724,506.15 736.81,513.12Q749.61,520.08 760.61,531L788.77,520.08Q798.92,516.23 808.08,519.88Q817.23,523.54 822.27,531.89L828.03,541.64Q833.07,550 831.46,559.96Q829.84,569.92 821.92,576.23L798.38,596Q802.69,610.43 802.69,626.06Q802.69,641.69 798.38,656L822.31,675Q830.23,681.31 831.65,691.15Q833.07,701 828,709.54L822.07,719.54Q817.07,727.51 808.5,731.14Q799.92,734.77 790.38,731.54L760.61,720.61Q749.23,730.92 736.61,737.77Q724,744.61 709.69,748.84L705.23,779.38Q703.38,789.54 695.77,795.73Q688.15,801.92 678,801.92L667.38,801.92Q657.23,801.92 649.62,795.42Q642,788.92 640.15,778.77ZM672.34,701.54Q703.77,701.54 726.11,679.16Q748.46,656.78 748.46,625.35Q748.46,593.92 726.08,571.58Q703.7,549.23 672.27,549.23Q640.85,549.23 618.5,571.61Q596.15,593.99 596.15,625.42Q596.15,656.84 618.53,679.19Q640.91,701.54 672.34,701.54ZM400,407.69Q433,407.69 456.5,384.19Q480,360.69 480,327.69Q480,294.69 456.5,271.19Q433,247.69 400,247.69Q367,247.69 343.5,271.19Q320,294.69 320,327.69Q320,360.69 343.5,384.19Q367,407.69 400,407.69ZM400,327.69Q400,327.69 400,327.69Q400,327.69 400,327.69Q400,327.69 400,327.69Q400,327.69 400,327.69Q400,327.69 400,327.69Q400,327.69 400,327.69Q400,327.69 400,327.69Q400,327.69 400,327.69ZM412,712.31L412,712.31L412,712.31Q412,712.31 412,712.31Q412,712.31 412,712.31Q412,712.31 412,712.31Q412,712.31 412,712.31Q412,712.31 412,712.31Q412,712.31 412,712.31Q412,712.31 412,712.31Q412,712.31 412,712.31Z"/>
|
||||
</vector>
|
|
@ -22,7 +22,7 @@ public class FeatureFlagImpl implements FeatureFlag {
|
|||
private final SharedPreferences sharedPreferences;
|
||||
|
||||
// ここを書き換えてプロファイルを書き換え
|
||||
private final Profile currentProfile = Profile.DEVELOP;
|
||||
private final Profile currentProfile = Profile.PRODUCTION;
|
||||
|
||||
enum Profile {
|
||||
DEVELOP("develop"),
|
||||
|
@ -68,14 +68,17 @@ public class FeatureFlagImpl implements FeatureFlag {
|
|||
// init
|
||||
private void initBase() { // ベース, (= Production)
|
||||
setFlag("dynamicColorEnable", true, false);
|
||||
setFlag("showDebugMenu", false, false);
|
||||
}
|
||||
|
||||
private void initBeta() { // 上書き
|
||||
setFlag("dynamicColorEnable", true, true);
|
||||
setFlag("showDebugMenu", false, true);
|
||||
}
|
||||
|
||||
private void initDevelop() { // 上書き
|
||||
setFlag("dynamicColorEnable", true, true);
|
||||
setFlag("showDebugMenu", true, true);
|
||||
}
|
||||
|
||||
// utils
|
||||
|
|
Loading…
Reference in New Issue
Block a user