OSDN Git Service

データ送信時のintentの変更(強化)検討中。
[gokigen/JoggingTimer.git] / wear / src / main / java / net / osdn / gokigen / joggingtimer / recorddetail / RecordDetailSetup.java
diff --git a/wear/src/main/java/net/osdn/gokigen/joggingtimer/recorddetail/RecordDetailSetup.java b/wear/src/main/java/net/osdn/gokigen/joggingtimer/recorddetail/RecordDetailSetup.java
deleted file mode 100644 (file)
index 42aadc0..0000000
+++ /dev/null
@@ -1,396 +0,0 @@
-package net.osdn.gokigen.joggingtimer.recorddetail;
-
-import android.annotation.SuppressLint;
-import android.content.Intent;
-import android.database.Cursor;
-import android.util.Log;
-
-import net.osdn.gokigen.joggingtimer.R;
-import net.osdn.gokigen.joggingtimer.storage.ITimeEntryDatabase;
-import net.osdn.gokigen.joggingtimer.storage.ITimeEntryDatabaseCallback;
-import net.osdn.gokigen.joggingtimer.storage.TimeEntryDatabaseFactory;
-import net.osdn.gokigen.joggingtimer.storage.contract.TimeEntryData;
-import net.osdn.gokigen.joggingtimer.storage.contract.TimeEntryIndex;
-import net.osdn.gokigen.joggingtimer.utilities.CreateModelData;
-import net.osdn.gokigen.joggingtimer.utilities.CreateModelDataDialog;
-import net.osdn.gokigen.joggingtimer.utilities.TimeStringConvert;
-
-import static android.provider.BaseColumns._ID;
-import static net.osdn.gokigen.joggingtimer.storage.contract.TimeEntryIndex.EntryIndex.COLUMN_NAME_MEMO;
-import static net.osdn.gokigen.joggingtimer.storage.contract.TimeEntryIndex.EntryIndex.COLUMN_NAME_START_TIME;
-import static net.osdn.gokigen.joggingtimer.storage.contract.TimeEntryIndex.EntryIndex.COLUMN_NAME_TIME_DURATION;
-import static net.osdn.gokigen.joggingtimer.storage.contract.TimeEntryIndex.EntryIndex.COLUMN_NAME_TITLE;
-
-import androidx.annotation.NonNull;
-import androidx.appcompat.app.AppCompatActivity;
-
-/**
- *
- *
- */
-public class RecordDetailSetup  implements ITimeEntryDatabaseCallback, IDetailEditor
-{
-    private final String TAG = toString();
-    private final AppCompatActivity activity;
-    private final long indexId;
-    private final IDatabaseReadyNotify callback;
-    private final IRecordOperation operation;
-    private final CreateModelData.IEditedModelDataCallback editCallback;
-    private ITimeEntryDatabase database = null;
-
-    /**
-     *
-     *
-     */
-    RecordDetailSetup(AppCompatActivity activity, long indexId, IDatabaseReadyNotify callback, IRecordOperation operation, CreateModelData.IEditedModelDataCallback  editCallback)
-    {
-        this.activity = activity;
-        this.indexId = indexId;
-        this.callback = callback;
-        this.operation = operation;
-        this.editCallback = editCallback;
-    }
-
-    /**
-     *
-     *
-     */
-    void setup()
-    {
-        Log.v(TAG, "setup()");
-        database = new TimeEntryDatabaseFactory(activity, this).getEntryDatabase();
-        Thread thread = new Thread(() -> {
-            try
-            {
-                database.prepare();
-            }
-            catch (Exception e)
-            {
-                e.printStackTrace();
-            }
-        });
-        thread.start();
-    }
-
-    /**
-     *
-     *
-     */
-    @Override
-    public void prepareFinished(boolean isReady)
-    {
-        if (!isReady)
-        {
-            callback.databaseSetupFinished(false);
-            return;
-        }
-        final IDetailEditor editor = this;
-        Thread thread = new Thread(() -> {
-            boolean ret = false;
-            try
-            {
-                operation.clearRecord();
-                Cursor cursor = database.getAllDetailData(indexId);
-                int index = 0;
-                long startTime = 0;
-                long previousLapTime = 0;
-                long morePreviousTime = 0;
-                while (cursor.moveToNext())
-                {
-                    @SuppressLint("Range") long dataId = cursor.getLong(cursor.getColumnIndex(_ID));
-                    @SuppressLint("Range") long indexId = cursor.getLong(cursor.getColumnIndex(TimeEntryData.EntryData.COLUMN_NAME_INDEX_ID));
-                    @SuppressLint("Range") long entryTime = cursor.getLong(cursor.getColumnIndex(TimeEntryData.EntryData.COLUMN_NAME_TIME_ENTRY));
-                    @SuppressLint("Range") int recordType = cursor.getInt(cursor.getColumnIndex(TimeEntryData.EntryData.COLUMN_NAME_RECORD_TYPE));
-
-                    if (index == 0)
-                    {
-                        // first record
-                        startTime = entryTime;
-                        previousLapTime = entryTime;
-                        morePreviousTime = entryTime;
-                    }
-                    else
-                    {
-                        long lapTime = entryTime - previousLapTime;
-                        long overallTime = entryTime - startTime;
-                        long differenceTime = (lapTime) - (previousLapTime - morePreviousTime);
-                        operation.addRecord(new DetailRecord(indexId, dataId, recordType, index, lapTime, overallTime, differenceTime,  editor));
-                        morePreviousTime = previousLapTime;
-                        previousLapTime = entryTime;
-                    }
-                    index++;
-                }
-                activity.runOnUiThread(operation::dataSetChangeFinished);
-                ret = true;
-            }
-            catch (Exception e)
-            {
-                e.printStackTrace();
-            }
-            callback.databaseSetupFinished(ret);
-        });
-        thread.start();
-    }
-
-    /**
-     *
-     *
-     */
-    void setEditIndexData(@NonNull final String title, final int icon)
-    {
-        final EditIndexData data = new EditIndexData(title, icon);
-        Thread thread = new Thread(() -> {
-            database.updateIndexData(indexId, data.getTitle(), data.getIcon());
-            callback.updatedIndexData(false);
-        });
-        thread.start();
-    }
-
-    /**
-     *
-     *
-     */
-    @SuppressLint("Range")
-    EditIndexData getEditIndexData()
-    {
-        String title = "";
-        int iconId = R.drawable.ic_android_black_24dp;
-        try
-        {
-            Cursor cursor = database.getIndexdata(indexId);
-            while (cursor.moveToNext())
-            {
-                title = cursor.getString(cursor.getColumnIndex(TimeEntryIndex.EntryIndex.COLUMN_NAME_TITLE));
-                iconId = cursor.getInt(cursor.getColumnIndex(TimeEntryIndex.EntryIndex.COLUMN_NAME_ICON_ID));
-            }
-            return (new EditIndexData(title, iconId));
-        }
-        catch (Exception e)
-        {
-            e.printStackTrace();
-        }
-        return (null);
-    }
-
-    /**
-     *
-     *
-     */
-    void setReferenceData(final int id)
-    {
-        Thread thread = new Thread(() -> {
-            database.setReferenceIndexData(id, indexId);
-            callback.updatedIndexData(true);
-        });
-        thread.start();
-    }
-
-    /**
-     *
-     *
-     */
-    @Override
-    public void dataEntryFinished(OperationType operationType, boolean result, long id, String title)
-    {
-         //
-    }
-
-    /**
-     *
-     *
-     */
-    @Override
-    public void timeEntryFinished(OperationType operationType, boolean result, long indexId, long dataId)
-    {
-        //
-    }
-
-    @Override
-    public void modelDataEntryFinished(OperationType operationType, boolean result, long indexId, String title)
-    {
-        //
-        Log.v(TAG, "modelDataEntryFinished : " + result + " " + title + " " + indexId);
-    }
-
-    /**
-     *
-     */
-    void closeDatabase()
-    {
-        try
-        {
-            database.close();
-        }
-        catch (Exception e)
-        {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     *    IDetailEditor.editDetailData()
-     */
-    @Override
-    public void editDetailData(final long indexId, final long dataId, final int count, final long defaultMillis)
-    {
-        activity.runOnUiThread(() -> {
-            CreateModelDataDialog dialog2 = CreateModelDataDialog.newInstance(false, activity.getString(R.string.information_modify_time), count, new CreateModelData(database, editCallback, null, indexId, dataId), defaultMillis);
-            dialog2.showNow(activity.getSupportFragmentManager(), "dialog2");
-        });
-    }
-
-    /**
-     *
-     */
-    public void updateDatabaseRecord(@NonNull RecordDetailAdapter adapter)
-    {
-        try
-        {
-            int count = adapter.getItemCount();
-            if (count > 1)
-            {
-                for (int index = 0; index < count; index++)
-                {
-                    DetailRecord record = adapter.getRecord(index);
-                    long id = record.getDataId();
-                    long time = record.getTotalTime();
-                    database.updateTimeEntryData(id, time);
-                }
-            }
-        }
-        catch (Exception e)
-        {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     *   現在のデータを共有する
-     *
-     */
-    public void shareTheData(final RecordDetailAdapter adapter)
-    {
-        Log.v(TAG, "shareTheData()");
-        if ((adapter == null) || (adapter.getItemCount() <= 0) || (activity == null))
-        {
-            // データがない場合は、何もしない
-            return;
-        }
-        shareDetailIntent(adapter);
-    }
-
-
-    /**
-     *
-     *
-     */
-    @SuppressLint("Range")
-    private void shareDetailIntent(RecordDetailAdapter adapter)
-    {
-        String title = "";
-        int dataCount = adapter.getItemCount();
-        StringBuilder dataToExport = new StringBuilder();
-        dataToExport.append("; ");
-        dataToExport.append(activity.getString(R.string.app_name));
-        dataToExport.append("\r\n");
-        try
-        {
-            Cursor cursor = database.getIndexdata(indexId);
-            while (cursor.moveToNext())
-            {
-                dataToExport.append("; ");
-                title = cursor.getString(cursor.getColumnIndex(COLUMN_NAME_TITLE));
-                dataToExport.append(title);
-                dataToExport.append(",");
-                dataToExport.append(TimeStringConvert.getTimeString(cursor.getLong(cursor.getColumnIndex(COLUMN_NAME_TIME_DURATION))));
-                dataToExport.append(",");
-                dataToExport.append(cursor.getLong(cursor.getColumnIndex(COLUMN_NAME_START_TIME)));
-                dataToExport.append(",");
-                dataToExport.append(cursor.getString(cursor.getColumnIndex(COLUMN_NAME_MEMO)));
-                dataToExport.append(",");
-                dataToExport.append("\r\n");
-            }
-        }
-        catch (Exception e)
-        {
-            e.printStackTrace();
-            dataToExport.append("\r\n");
-        }
-        dataToExport.append("; \r\n");
-        dataToExport.append("; LapCount,LapTime,TotalTime,LapTime(ms),TotalTime(ms),;\r\n");
-
-        for (int index = 0; index < dataCount; index++)
-        {
-            try
-            {
-                DetailRecord record = adapter.getRecord(index);
-                dataToExport.append(record.getLapCount());
-                dataToExport.append(",");
-                dataToExport.append(record.getTitle());
-                dataToExport.append(",");
-                dataToExport.append(record.getOverallTime());
-                dataToExport.append(",");
-                dataToExport.append(record.getLapTime());
-                dataToExport.append(",");
-                dataToExport.append(record.getTotalTime());
-                dataToExport.append(",");
-                dataToExport.append(";");
-            }
-            catch (Exception e)
-            {
-                e.printStackTrace();
-                dataToExport.append(";;\r\n");
-                break;
-            }
-            dataToExport.append("\r\n");
-        }
-
-        // Intent発行(ACTION_SEND)
-        try
-        {
-            Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND);
-            sendIntent.putExtra(Intent.EXTRA_SUBJECT, title);
-            sendIntent.setType("text/plain");
-            sendIntent.putExtra(Intent.EXTRA_TEXT, dataToExport.toString());
-            activity.startActivity(sendIntent);
-
-            Log.v(TAG, "<<< SEND INTENT >>> : " + title);
-        }
-        catch (Exception e)
-        {
-            e.printStackTrace();
-        }
-    }
-
-    static class EditIndexData
-    {
-        final String title;
-        final int icon;
-
-        EditIndexData(String title, int icon)
-        {
-            this.title = title;
-            this.icon = icon;
-        }
-
-        String getTitle()
-        {
-            return (title);
-        }
-
-        int getIcon()
-        {
-            return (icon);
-        }
-    }
-
-
-    /**
-     *
-     */
-    interface IDatabaseReadyNotify
-    {
-        void databaseSetupFinished(boolean result);
-        void updatedIndexData(boolean isIconOnly);
-    }
-}