diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActAccountSetting.java b/app/src/main/java/jp/juggler/subwaytooter/ActAccountSetting.java index 9b85265d..1844cc92 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ActAccountSetting.java +++ b/app/src/main/java/jp/juggler/subwaytooter/ActAccountSetting.java @@ -400,7 +400,7 @@ public class ActAccountSetting extends AppCompatActivity } ); api_client.setAccount( account ); - return api_client.authorize1(); + return api_client.authorize1( Pref.pref(ActAccountSetting.this).getString(Pref.KEY_CLIENT_NAME,"")); } @Override protected void onPostExecute( TootApiResult result ){ diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActAppSetting.java b/app/src/main/java/jp/juggler/subwaytooter/ActAppSetting.java index bf785841..7c697061 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ActAppSetting.java +++ b/app/src/main/java/jp/juggler/subwaytooter/ActAppSetting.java @@ -125,6 +125,8 @@ public class ActAppSetting extends AppCompatActivity EditText etColumnWidth; EditText etMediaThumbHeight; + EditText etClientName; + TextView tvTimelineFontUrl; String timeline_font; @@ -274,12 +276,16 @@ public class ActAppSetting extends AppCompatActivity vIndicator = findViewById( R.id.vIndicator ); etColumnWidth = (EditText) findViewById( R.id.etColumnWidth ); + etColumnWidth.addTextChangedListener( this ); + etMediaThumbHeight = (EditText) findViewById( R.id.etMediaThumbHeight ); - + etMediaThumbHeight.addTextChangedListener( this ); + + etClientName = (EditText) findViewById( R.id.etClientName ); + etClientName.addTextChangedListener( this ); + tvTimelineFontUrl = (TextView) findViewById( R.id.tvTimelineFontUrl ); - etColumnWidth.addTextChangedListener( this ); - etMediaThumbHeight.addTextChangedListener( this ); } boolean load_busy; @@ -325,7 +331,7 @@ public class ActAppSetting extends AppCompatActivity etColumnWidth.setText( pref.getString( Pref.KEY_COLUMN_WIDTH, "" ) ); etMediaThumbHeight.setText( pref.getString( Pref.KEY_MEDIA_THUMB_HEIGHT, "" ) ); - + etClientName.setText( pref.getString( Pref.KEY_CLIENT_NAME, "" ) ); timeline_font = pref.getString( Pref.KEY_TIMELINE_FONT, "" ); load_busy = false; @@ -373,7 +379,8 @@ public class ActAppSetting extends AppCompatActivity .putString( Pref.KEY_TIMELINE_FONT, timeline_font ) .putString( Pref.KEY_COLUMN_WIDTH, etColumnWidth.getText().toString().trim() ) .putString( Pref.KEY_MEDIA_THUMB_HEIGHT, etMediaThumbHeight.getText().toString().trim() ) - + .putString( Pref.KEY_CLIENT_NAME, etClientName.getText().toString().trim() ) + .apply(); } diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActMain.java b/app/src/main/java/jp/juggler/subwaytooter/ActMain.java index 8ab6546b..414c74ba 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ActMain.java +++ b/app/src/main/java/jp/juggler/subwaytooter/ActMain.java @@ -252,6 +252,7 @@ public class ActMain extends AppCompatActivity , getString( R.string.account_picker_toot ) , new AccountPicker.AccountPickerCallback() { @Override public void onAccountPicked( @NonNull SavedAccount ai ){ + sent_intent2 = null; ActPost.open( ActMain.this, REQUEST_CODE_POST, ai.db_id, intent ); } } @@ -923,7 +924,7 @@ public class ActMain extends AppCompatActivity if( bPseudoAccount ){ return api_client.checkInstance(); }else{ - return api_client.authorize1(); + return api_client.authorize1( Pref.pref(ActMain.this).getString(Pref.KEY_CLIENT_NAME,"")); } } diff --git a/app/src/main/java/jp/juggler/subwaytooter/AppDataExporter.java b/app/src/main/java/jp/juggler/subwaytooter/AppDataExporter.java index 1e4ec117..05feab33 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/AppDataExporter.java +++ b/app/src/main/java/jp/juggler/subwaytooter/AppDataExporter.java @@ -327,6 +327,7 @@ public class AppDataExporter { case Pref.KEY_STREAM_LISTENER_CONFIG_URL: case Pref.KEY_STREAM_LISTENER_SECRET: case Pref.KEY_STREAM_LISTENER_CONFIG_DATA: + case Pref.KEY_CLIENT_NAME: String sv = reader.nextString(); e.putString( k, sv ); break; diff --git a/app/src/main/java/jp/juggler/subwaytooter/Pref.java b/app/src/main/java/jp/juggler/subwaytooter/Pref.java index 6ea0a2b3..040730e8 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/Pref.java +++ b/app/src/main/java/jp/juggler/subwaytooter/Pref.java @@ -6,7 +6,6 @@ import android.preference.PreferenceManager; public class Pref { - static SharedPreferences pref( Context context ){ return PreferenceManager.getDefaultSharedPreferences( context ); } @@ -58,6 +57,9 @@ public class Pref { static final String KEY_PRIOR_CHROME = "prior_chrome"; static final String KEY_POST_BUTTON_BAR_AT_TOP = "post_button_bar_at_top"; + + static final String KEY_CLIENT_NAME = "client_name"; + // 項目を追加したらAppDataExporter#importPref のswitch文も更新すること } diff --git a/app/src/main/java/jp/juggler/subwaytooter/api/TootApiClient.java b/app/src/main/java/jp/juggler/subwaytooter/api/TootApiClient.java index e892f9ad..e98737a8 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/api/TootApiClient.java +++ b/app/src/main/java/jp/juggler/subwaytooter/api/TootApiClient.java @@ -235,7 +235,7 @@ public class TootApiClient { } } - public @Nullable TootApiResult authorize1(){ + public @Nullable TootApiResult authorize1(String client_name){ JSONObject client_info; @@ -248,7 +248,9 @@ public class TootApiClient { Response response; try{ - String client_name = "SubwayTooter"; // + UUID.randomUUID().toString(); + if( TextUtils.isEmpty( client_name )){ + client_name = "SubwayTooter"; + } Request request = new Request.Builder() .url( "https://" + instance + "/api/v1/apps" ) diff --git a/app/src/main/java/jp/juggler/subwaytooter/dialog/AccountPicker.java b/app/src/main/java/jp/juggler/subwaytooter/dialog/AccountPicker.java index 53d465be..d4fa596d 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/dialog/AccountPicker.java +++ b/app/src/main/java/jp/juggler/subwaytooter/dialog/AccountPicker.java @@ -73,7 +73,7 @@ public class AccountPicker { , String message , @NonNull final ArrayList< SavedAccount > account_list , @NonNull final AccountPickerCallback callback - , @Nullable final DialogInterface.OnDismissListener dissmiss_callback + , @Nullable final DialogInterface.OnDismissListener dismiss_callback ){ if( account_list.isEmpty() ){ Utils.showToast( activity, false, R.string.account_empty ); @@ -110,8 +110,8 @@ public class AccountPicker { final Dialog dialog = new Dialog( activity ); final AtomicBoolean isDialogClosed = new AtomicBoolean( false ); - if( dissmiss_callback != null ){ - dialog.setOnDismissListener( dissmiss_callback ); + if( dismiss_callback != null ){ + dialog.setOnDismissListener( dismiss_callback ); } dialog.setContentView( viewRoot ); @@ -168,8 +168,8 @@ public class AccountPicker { b.setOnClickListener( new View.OnClickListener() { @Override public void onClick( View v ){ isDialogClosed.set(true); - dialog.dismiss(); callback.onAccountPicked( _a ); + dialog.dismiss(); } } ); llAccounts.addView( b ); diff --git a/app/src/main/res/layout/act_app_setting.xml b/app/src/main/res/layout/act_app_setting.xml index e546fc86..cb4097f7 100644 --- a/app/src/main/res/layout/act_app_setting.xml +++ b/app/src/main/res/layout/act_app_setting.xml @@ -207,6 +207,23 @@ + + + + + + + + + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 3cc144dc..d61e35d5 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -365,8 +365,9 @@ TextToSpeech initializing failed. status=%1$s TextToSpeech shutdown… Show buttons bar at the top of posting screen + Client name (access token update required) - + diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index c7070e17..68113f52 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -652,5 +652,6 @@ TextToSpeechの初期化に失敗。status=%1$s TextToSpeechの後処理… 投稿画面のボタンバーを上端に表示 + クライアント名(アクセストークンの更新が必要) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0269c3ba..da960d44 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -360,4 +360,5 @@ TextToSpeech initializing failed. status=%1$s TextToSpeech shutdown… Show buttons bar at the top of posting screen + Client name (access token update required)