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)