From fb474c6505e8efd5a5ca1aa2d648793b4740fdfd Mon Sep 17 00:00:00 2001 From: MRSa Date: Sun, 3 Feb 2019 23:30:43 +0900 Subject: [PATCH] =?utf8?q?=E3=81=99=E3=81=93=E3=81=97=E6=9B=B4=E6=96=B0?= =?utf8?q?=E3=80=82=E8=A8=AD=E5=AE=9A=E7=94=BB=E9=9D=A2=E3=82=92=E8=B5=B7?= =?utf8?q?=E5=8B=95=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=97?= =?utf8?q?=E3=81=A6=E3=81=BF=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../net/osdn/gokigen/pkremote/MainActivity.java | 111 +- ...nceFragment.java => OpcPreferenceFragment.java} | 14 +- ...ronizer.java => OpcPreferenceSynchronizer.java} | 4 +- .../gokigen/pkremote/scene/CameraSceneUpdater.java | 27 +- .../res/drawable/ic_navigate_before_black_24dp.xml | 9 + .../ic_navigate_before_light_grey_24dp.xml | 5 + .../res/drawable/ic_navigate_next_black_24dp.xml | 9 + .../drawable/ic_navigate_next_light_grey_24dp.xml | 5 + app/src/main/res/layout/fragment_calendar.xml | 1293 ++++++++++++++++++++ app/src/main/res/values/strings.xml | 16 +- app/src/main/res/xml/larrowbuttonstyle.xml | 14 + app/src/main/res/xml/preferences_ricoh_gr2.xml | 3 +- app/src/main/res/xml/rarrowbuttonstyle.xml | 14 + 13 files changed, 1508 insertions(+), 16 deletions(-) rename app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/{PreferenceFragment.java => OpcPreferenceFragment.java} (96%) rename app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/{PreferenceSynchronizer.java => OpcPreferenceSynchronizer.java} (90%) create mode 100644 app/src/main/res/drawable/ic_navigate_before_black_24dp.xml create mode 100644 app/src/main/res/drawable/ic_navigate_before_light_grey_24dp.xml create mode 100644 app/src/main/res/drawable/ic_navigate_next_black_24dp.xml create mode 100644 app/src/main/res/drawable/ic_navigate_next_light_grey_24dp.xml create mode 100644 app/src/main/res/layout/fragment_calendar.xml create mode 100644 app/src/main/res/xml/larrowbuttonstyle.xml create mode 100644 app/src/main/res/xml/rarrowbuttonstyle.xml diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/MainActivity.java b/app/src/main/java/net/osdn/gokigen/pkremote/MainActivity.java index b040a69..398fc0e 100644 --- a/app/src/main/java/net/osdn/gokigen/pkremote/MainActivity.java +++ b/app/src/main/java/net/osdn/gokigen/pkremote/MainActivity.java @@ -1,18 +1,38 @@ package net.osdn.gokigen.pkremote; +import android.Manifest; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; import android.os.Bundle; import androidx.annotation.NonNull; import com.google.android.material.bottomnavigation.BottomNavigationView; +import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.FragmentTransaction; +import androidx.preference.PreferenceManager; +import android.util.Log; import android.view.MenuItem; +import android.view.WindowManager; import android.widget.TextView; +import net.osdn.gokigen.pkremote.camera.CameraInterfaceProvider; +import net.osdn.gokigen.pkremote.camera.interfaces.IInterfaceProvider; +import net.osdn.gokigen.pkremote.preference.IPreferencePropertyAccessor; +import net.osdn.gokigen.pkremote.scene.CameraSceneUpdater; + public class MainActivity extends AppCompatActivity { + private final String TAG = toString(); + private IInterfaceProvider interfaceProvider = null; + private CameraSceneUpdater scenceUpdater = null; + + private TextView mTextMessage; private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() { @@ -41,13 +61,102 @@ public class MainActivity extends AppCompatActivity }; @Override - protected void onCreate(Bundle savedInstanceState) { + protected void onCreate(Bundle savedInstanceState) + { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + try + { + ActionBar bar = getSupportActionBar(); + if (bar != null) + { + // タイトルバーは表示しない + bar.hide(); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); mTextMessage = findViewById(R.id.message); BottomNavigationView navigation = findViewById(R.id.navigation); navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); + + // パーミッション群のオプトイン + final int REQUEST_NEED_PERMISSIONS = 1010; + if ((ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) || + (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_NETWORK_STATE) != PackageManager.PERMISSION_GRANTED) || + (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_WIFI_STATE) != PackageManager.PERMISSION_GRANTED) || + (ContextCompat.checkSelfPermission(this, Manifest.permission.VIBRATE) != PackageManager.PERMISSION_GRANTED) || + (ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED)) { + ActivityCompat.requestPermissions(this, + new String[]{ + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.ACCESS_NETWORK_STATE, + Manifest.permission.ACCESS_WIFI_STATE, + Manifest.permission.VIBRATE, + Manifest.permission.INTERNET, + }, + REQUEST_NEED_PERMISSIONS); + } + initializeClass(); + onReadyClass(); + } + + /** + * パーミッション設定が終わった後... + * + */ + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) + { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + onReadyClass(); } + /** + * クラスの初期化 (instantiate) + * + */ + private void initializeClass() + { + try + { + scenceUpdater = CameraSceneUpdater.newInstance(this); + interfaceProvider = CameraInterfaceProvider.newInstance(this, scenceUpdater); + scenceUpdater.changeFirstFragment(interfaceProvider); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + + /** + * 初期化終了時の処理 (カメラへの自動接続) + */ + private void onReadyClass() + { + try + { + // カメラに自動接続するかどうか確認 + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); + boolean isAutoConnectCamera = preferences.getBoolean(IPreferencePropertyAccessor.AUTO_CONNECT_TO_CAMERA, true); + Log.v(TAG, "isAutoConnectCamera() : " + isAutoConnectCamera); + + // カメラに接続する + if (isAutoConnectCamera) + { + // 自動接続の指示があったとき + scenceUpdater.changeCameraConnection(); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } } diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/PreferenceFragment.java b/app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/OpcPreferenceFragment.java similarity index 96% rename from app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/PreferenceFragment.java rename to app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/OpcPreferenceFragment.java index 1949f31..019cef7 100644 --- a/app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/PreferenceFragment.java +++ b/app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/OpcPreferenceFragment.java @@ -36,7 +36,7 @@ import jp.co.olympus.camerakit.OLYCamera; * SettingFragment * */ -public class PreferenceFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener, PreferenceSynchronizer.IPropertySynchronizeCallback +public class OpcPreferenceFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener, OpcPreferenceSynchronizer.IPropertySynchronizeCallback { private final String TAG = toString(); private IOlyCameraPropertyProvider propertyInterface = null; @@ -46,12 +46,12 @@ public class PreferenceFragment extends PreferenceFragmentCompat implements Shar private LogCatViewer logCatViewer = null; private SharedPreferences preferences = null; private ProgressDialog busyDialog = null; - private PreferenceSynchronizer preferenceSynchronizer = null; + private OpcPreferenceSynchronizer opcPreferenceSynchronizer = null; - public static PreferenceFragment newInstance(@NonNull AppCompatActivity context, @NonNull IInterfaceProvider factory, @NonNull IChangeScene changeScene) + public static OpcPreferenceFragment newInstance(@NonNull AppCompatActivity context, @NonNull IInterfaceProvider factory, @NonNull IChangeScene changeScene) { - PreferenceFragment instance = new PreferenceFragment(); + OpcPreferenceFragment instance = new OpcPreferenceFragment(); instance.setInterface(context, factory, changeScene); // パラメータはBundleにまとめておく @@ -91,9 +91,9 @@ public class PreferenceFragment extends PreferenceFragmentCompat implements Shar // Preference をつかまえる preferences = PreferenceManager.getDefaultSharedPreferences(activity); - if (preferenceSynchronizer == null) + if (opcPreferenceSynchronizer == null) { - preferenceSynchronizer = new PreferenceSynchronizer(this.propertyInterface, preferences, this); + opcPreferenceSynchronizer = new OpcPreferenceSynchronizer(this.propertyInterface, preferences, this); } // Preference を初期設定する @@ -319,7 +319,7 @@ public class PreferenceFragment extends PreferenceFragmentCompat implements Shar // データ読み込み処理(別スレッドで実行) if (isPropertyLoad) { - new Thread(preferenceSynchronizer).start(); + new Thread(opcPreferenceSynchronizer).start(); } } diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/PreferenceSynchronizer.java b/app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/OpcPreferenceSynchronizer.java similarity index 90% rename from app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/PreferenceSynchronizer.java rename to app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/OpcPreferenceSynchronizer.java index 62b67d3..7fcbb18 100644 --- a/app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/PreferenceSynchronizer.java +++ b/app/src/main/java/net/osdn/gokigen/pkremote/preference/olympus/OpcPreferenceSynchronizer.java @@ -9,14 +9,14 @@ import net.osdn.gokigen.pkremote.camera.vendor.olympus.wrapper.property.IOlyCame import net.osdn.gokigen.pkremote.camera.vendor.olympus.wrapper.property.IOlyCameraPropertyProvider; import net.osdn.gokigen.pkremote.preference.IPreferencePropertyAccessor; -class PreferenceSynchronizer implements Runnable +class OpcPreferenceSynchronizer implements Runnable { private final String TAG = toString(); private final IOlyCameraPropertyProvider propertyInterface; private final SharedPreferences preference; private final IPropertySynchronizeCallback callback; - PreferenceSynchronizer(IOlyCameraPropertyProvider propertyInterface, SharedPreferences preference, IPropertySynchronizeCallback callback) + OpcPreferenceSynchronizer(IOlyCameraPropertyProvider propertyInterface, SharedPreferences preference, IPropertySynchronizeCallback callback) { this.propertyInterface = propertyInterface; this.preference = preference; diff --git a/app/src/main/java/net/osdn/gokigen/pkremote/scene/CameraSceneUpdater.java b/app/src/main/java/net/osdn/gokigen/pkremote/scene/CameraSceneUpdater.java index 6f65fbf..dd11c41 100644 --- a/app/src/main/java/net/osdn/gokigen/pkremote/scene/CameraSceneUpdater.java +++ b/app/src/main/java/net/osdn/gokigen/pkremote/scene/CameraSceneUpdater.java @@ -8,6 +8,7 @@ import net.osdn.gokigen.pkremote.camera.interfaces.liveview.IStatusViewDrawer; import net.osdn.gokigen.pkremote.camera.interfaces.status.ICameraStatusReceiver; import net.osdn.gokigen.pkremote.camera.interfaces.IInterfaceProvider; import net.osdn.gokigen.pkremote.logcat.LogCatFragment; +import net.osdn.gokigen.pkremote.preference.olympus.OpcPreferenceFragment; import net.osdn.gokigen.pkremote.preference.ricohgr2.RicohGr2PreferenceFragment; import androidx.annotation.NonNull; @@ -43,6 +44,28 @@ public class CameraSceneUpdater implements ICameraStatusReceiver, IChangeScene this.activity = activity; } + /** + * 一番最初のフラグメントを表示する + * + */ + public void changeFirstFragment(@NonNull IInterfaceProvider interfaceProvider) + { + this.interfaceProvider = interfaceProvider; + + // 初期画面へ遷移 + changeSceneToConfiguration(); +/* + LiveViewFragment fragment = LiveViewFragment.newInstance(scenceUpdater, interfaceProvider); + scenceUpdater.registerInterface(fragment, interfaceProvider); + + fragment.setRetainInstance(true); + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.fragment1, fragment); + transaction.commitAllowingStateLoss(); +*/ + + } + // CameraSceneUpdater public void registerInterface(@NonNull IStatusViewDrawer statusViewDrawer, @NonNull IInterfaceProvider interfaceProvider) { @@ -199,7 +222,6 @@ public class CameraSceneUpdater implements ICameraStatusReceiver, IChangeScene try { preferenceFragment = RicohGr2PreferenceFragment.newInstance(activity, this); -/* ICameraConnection.CameraConnectionMethod connectionMethod = interfaceProvider.getCammeraConnectionMethod(); if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH) { preferenceFragment = RicohGr2PreferenceFragment.newInstance(activity, this); @@ -207,9 +229,8 @@ public class CameraSceneUpdater implements ICameraStatusReceiver, IChangeScene // preferenceFragment = SonyPreferenceFragment.newInstance(this, this); } else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC) { - preferenceFragment = PreferenceFragment.newInstance(activity, interfaceProvider, this); + preferenceFragment = OpcPreferenceFragment.newInstance(activity, interfaceProvider, this); } -*/ } catch (Exception e) { diff --git a/app/src/main/res/drawable/ic_navigate_before_black_24dp.xml b/app/src/main/res/drawable/ic_navigate_before_black_24dp.xml new file mode 100644 index 0000000..e6bb3ca --- /dev/null +++ b/app/src/main/res/drawable/ic_navigate_before_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_navigate_before_light_grey_24dp.xml b/app/src/main/res/drawable/ic_navigate_before_light_grey_24dp.xml new file mode 100644 index 0000000..b548f99 --- /dev/null +++ b/app/src/main/res/drawable/ic_navigate_before_light_grey_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_navigate_next_black_24dp.xml b/app/src/main/res/drawable/ic_navigate_next_black_24dp.xml new file mode 100644 index 0000000..2483512 --- /dev/null +++ b/app/src/main/res/drawable/ic_navigate_next_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_navigate_next_light_grey_24dp.xml b/app/src/main/res/drawable/ic_navigate_next_light_grey_24dp.xml new file mode 100644 index 0000000..6c28ff4 --- /dev/null +++ b/app/src/main/res/drawable/ic_navigate_next_light_grey_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/fragment_calendar.xml b/app/src/main/res/layout/fragment_calendar.xml new file mode 100644 index 0000000..e4f3238 --- /dev/null +++ b/app/src/main/res/layout/fragment_calendar.xml @@ -0,0 +1,1293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1f30e43..632f532 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,6 +1,8 @@ PKRemote + ## + Button Settings Restore @@ -42,8 +44,9 @@ Display Mode Mirror Camera Screen - Use same camera screen. + Use same camera screen.(GR2 Only) Screen off during connected + This switch effects only GR2. Others Share after Save @@ -53,7 +56,7 @@ Use some GR2 special command. Capture after AF(PENTAX) - Capture after AF.(for PENTAX DSLR, need restart) + Capture after AF.(for PENTAX DSLR, needs restart) GOKIGEN Instructions @@ -104,4 +107,13 @@ SD Card Status Camera Version Camera kit Version + + Today + Sun + Mon + Tue + Wed + Thu + Fri + Sat diff --git a/app/src/main/res/xml/larrowbuttonstyle.xml b/app/src/main/res/xml/larrowbuttonstyle.xml new file mode 100644 index 0000000..577e080 --- /dev/null +++ b/app/src/main/res/xml/larrowbuttonstyle.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/app/src/main/res/xml/preferences_ricoh_gr2.xml b/app/src/main/res/xml/preferences_ricoh_gr2.xml index 10a13fc..1ebd267 100644 --- a/app/src/main/res/xml/preferences_ricoh_gr2.xml +++ b/app/src/main/res/xml/preferences_ricoh_gr2.xml @@ -36,7 +36,8 @@ + android:title="@string/pref_gr2_lcd_sleep" + android:summary="@string/pref_gr2_lcd_sleep_summary" /> + + + + + -- 2.11.0