diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f3bcd749..020db042 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -280,13 +280,6 @@ - - - - - - - writer.value(MAGIC_NAN) else -> writer.value(v) } - else -> throw RuntimeException( - String.format( - Locale.JAPAN, - "writePref. bad data type: Preference key =%s", - k - ) - ) + else -> error("writePref: bad data type. key=$k, type=${v.javaClass.simpleName}") } } writer.endObject() @@ -306,6 +301,7 @@ object AppDataExporter { @Throws(IOException::class, JsonException::class) private fun writeColumn(app_state : AppState, writer : JsonWriter) { + writer.name(KEY_COLUMN) writer.beginArray() for(column in app_state.column_list) { writer.writeJsonValue(jsonObject { column.encodeJSON(this, 0) }) @@ -318,21 +314,20 @@ object AppDataExporter { app_state : AppState, reader : JsonReader, id_map : HashMap - ) : ArrayList { - val result = ArrayList() + ) = ArrayList().also{ result-> reader.beginArray() while(reader.hasNext()) { - val item = reader.readJsonValue().cast() !! + val item :JsonObject = reader.readJsonValue().cast() !! + // DB上のアカウントIDが変化したので置き換える when(val old_id = item.long(Column.KEY_ACCOUNT_ROW_ID) ?: - 1L) { + // 検索カラムのアカウントIDはNAアカウントと紐ついている。変換の必要はない - 1L -> { } - else -> { - item[Column.KEY_ACCOUNT_ROW_ID] = id_map[old_id] - ?: error("readColumn: can't convert account id") - } + else -> item[Column.KEY_ACCOUNT_ROW_ID] = id_map[old_id] + ?: error("readColumn: can't convert account id") } try { @@ -344,7 +339,6 @@ object AppDataExporter { } } reader.endArray() - return result } @Throws(IOException::class, JsonException::class) @@ -353,29 +347,18 @@ object AppDataExporter { writer.beginObject() val app_state = App1.getAppState(context) - ////////////////////////////////////// - run { - writer.name(KEY_PREF) - writePref(writer, app_state.pref) - } - ////////////////////////////////////// + + writePref(writer, app_state.pref) + writeFromTable(writer, KEY_ACCOUNT, SavedAccount.table) writeFromTable(writer, KEY_ACCT_COLOR, AcctColor.table) writeFromTable(writer, KEY_MUTED_APP, MutedApp.table) writeFromTable(writer, KEY_MUTED_WORD, MutedWord.table) writeFromTable(writer, KEY_FAV_MUTE, FavMute.table) writeFromTable(writer, KEY_HIGHLIGHT_WORD, HighlightWord.table) - - // 端末間でクライアントIDを再利用することはできなくなった - //writeFromTable(writer, KEY_CLIENT_INFO, ClientInfo.table) - - ////////////////////////////////////// - run { - writer.name(KEY_COLUMN) - writeColumn(app_state, writer) - - } - + + writeColumn(app_state, writer) + writer.endObject() } diff --git a/app/src/main/java/jp/juggler/subwaytooter/ChooseReceiver.kt b/app/src/main/java/jp/juggler/subwaytooter/ChooseReceiver.kt deleted file mode 100644 index b062ddf0..00000000 --- a/app/src/main/java/jp/juggler/subwaytooter/ChooseReceiver.kt +++ /dev/null @@ -1,31 +0,0 @@ -package jp.juggler.subwaytooter - -import android.content.BroadcastReceiver -import android.content.ComponentName -import android.content.Context -import android.content.Intent -import android.os.Build -import jp.juggler.util.LogCategory -import java.lang.ref.WeakReference - -class ChooseReceiver : BroadcastReceiver() { - - companion object { - private val log = LogCategory("ChooseReceiver") - var lastComponentName : ComponentName? = null - var refCallback : WeakReference<() -> Unit>? = null - - fun setCallback(cb : () -> Unit) { - refCallback = WeakReference(cb) - } - } - - override fun onReceive(context : Context, intent : Intent?) { - if(Build.VERSION.SDK_INT >= 22) { - lastComponentName = intent?.extras?.get(Intent.EXTRA_CHOSEN_COMPONENT) as? ComponentName - refCallback?.get()?.invoke() - } else { - log.w("onReceive: Intent.EXTRA_CHOSEN_COMPONENT can't be used in API level 21") - } - } -}