Ver código fonte

Task #1287 [Android] 관리 - 도와줘요 개발팀에 문의하기 기능 개발

sanghoonkwon 7 anos atrás
pai
commit
86750b3165

+ 1 - 1
.gradle/buildOutputCleanup/cache.properties

@@ -1,2 +1,2 @@
-#Thu Jun 07 15:16:50 KST 2018
+#Tue Jul 17 10:38:52 KST 2018
 gradle.version=4.4

+ 1 - 1
.idea/misc.xml

@@ -61,7 +61,7 @@
       </value>
     </option>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">

+ 1 - 3
app/app.iml

@@ -92,7 +92,6 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-manifest" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes-jar" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-classes" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-runtime-classes" />
@@ -101,6 +100,7 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-main-apk-res" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaPrecompile" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifest-checker" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
@@ -112,10 +112,8 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/split-apk" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/splits-support" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/tmp" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
       <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
-      <excludeFolder url="file://$MODULE_DIR$/build/reports" />
       <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
     </content>
     <orderEntry type="jdk" jdkName="Android API 27 Platform" jdkType="Android SDK" />

+ 2 - 2
app/build.gradle

@@ -7,11 +7,11 @@ android {
         minSdkVersion 21
         targetSdkVersion 25
         versionCode 1
-        versionName '1.3.0'
+        versionName '1.3.1'
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
         multiDexEnabled true
 
-        buildConfigField "String", "REVISION", "\"2018071201\""
+        buildConfigField "String", "REVISION", "\"2018071901\""
         buildConfigField "String", "RC", "\"rc7\""
 
         buildConfigField "String", "WEB_REAL_URL", "\"https://qtalk.dreamplus.center/newgw/b/v2\""

+ 3 - 0
app/src/main/AndroidManifest.xml

@@ -63,6 +63,9 @@
         <activity
             android:name=".screen.main.setting.SettingScreenActivity"
             android:screenOrientation="portrait" />
+        <activity
+            android:name=".screen.main.setting.HelpdeskActivity"
+            android:screenOrientation="portrait" />
 
         <activity
             android:name=".screen.main.webview.NoticeWebViewActivity"

+ 88 - 0
app/src/main/java/kr/co/hanwha/hifive/screen/main/setting/HelpdeskActivity.java

@@ -0,0 +1,88 @@
+package kr.co.hanwha.hifive.screen.main.setting;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.EditText;
+
+import kr.co.hanwha.hifive.R;
+import kr.co.hanwha.hifive.base.BaseActivity;
+import kr.co.hanwha.hifive.enums.BaseAnimationType;
+import kr.co.hanwha.hifive.enums.BaseToolbarType;
+
+public class HelpdeskActivity extends BaseActivity implements HelpdeskContract.View {
+    private EditText mEditText;
+
+    private HelpdeskContract.Presenter mPresenter;
+
+    @Override
+    protected int getContentViewResource() {
+        return R.layout.activity_helpdesk;
+    }
+
+    @Override
+    protected BaseToolbarType isToolbarStyle() {
+        return BaseToolbarType.ONLY_BACK;
+    }
+
+    @Override
+    protected BaseAnimationType isShowActivityAnimation() {
+        return BaseAnimationType.RIGHT;
+    }
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setTitle("도와주세효");// TEST
+
+        initView();
+
+        initCallback();
+
+        showKeyboard();
+
+        mPresenter = new HelpdeskPresenter(this);
+    }
+
+    @Override
+    public void initView() {
+        mEditText = (EditText) findViewById(R.id.editText);
+    }
+
+    @Override
+    public void initCallback() {
+        findViewById(R.id.register_textView).setOnClickListener(onClickListener);
+    }
+
+    private void showKeyboard() {
+        mEditText.requestFocus();
+        mEditText.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                InputMethodManager input = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+                input.showSoftInput(mEditText, InputMethodManager.SHOW_IMPLICIT);
+            }
+        }, 100);
+    }
+
+    private String getTaskString() {
+        return mEditText.getText().toString();
+    }
+
+    /**************************************************
+     * View.OnClickListener
+     **************************************************/
+    View.OnClickListener onClickListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View view) {
+            switch (view.getId()) {
+                case R.id.register_textView:
+                    mPresenter.requestSendTask(getTaskString());
+                    break;
+            }
+        }
+    };
+}

+ 28 - 0
app/src/main/java/kr/co/hanwha/hifive/screen/main/setting/HelpdeskContract.java

@@ -0,0 +1,28 @@
+package kr.co.hanwha.hifive.screen.main.setting;
+
+import android.support.annotation.NonNull;
+
+import kr.co.hanwha.hifive.base.BasePresenter;
+import kr.co.hanwha.hifive.base.BaseView;
+
+public interface HelpdeskContract {
+    interface View extends BaseView<Presenter> {
+        void initView();
+
+        void initCallback();
+    }
+
+    interface Presenter extends BasePresenter {
+        /**
+         * Initialize Data
+         */
+        void initData();
+
+        /**
+         * TASK 신규 등록
+         *
+         * @param task_name TASK 내용
+         */
+        void requestSendTask(@NonNull String task_name);
+    }
+}

+ 99 - 0
app/src/main/java/kr/co/hanwha/hifive/screen/main/setting/HelpdeskPresenter.java

@@ -0,0 +1,99 @@
+package kr.co.hanwha.hifive.screen.main.setting;
+
+import android.app.Activity;
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.text.TextUtils;
+
+import java.util.ArrayList;
+
+import kr.co.hanwha.hifive.R;
+import kr.co.hanwha.hifive.data.model.CampaignData;
+import kr.co.hanwha.hifive.data.model.MemberInfoData;
+import kr.co.hanwha.hifive.data.source.TaskCampaignDataRepository;
+import kr.co.hanwha.hifive.data.source.TaskDataRepository;
+import kr.co.hanwha.hifive.data.source.TaskMemberDataRepository;
+import kr.co.hanwha.hifive.dialog.HFDefaultDialog;
+import kr.co.hanwha.hifive.network.hanwha.HanwhaNetworkCallback;
+import kr.co.hanwha.hifive.network.hanwha.HanwhaNetworkError;
+
+public class HelpdeskPresenter implements HelpdeskContract.Presenter {
+    private HelpdeskContract.View mView;
+
+    public HelpdeskPresenter(@NonNull HelpdeskContract.View view) {
+        this.mView = view;
+    }
+
+    @Override
+    public void detachView() {
+
+    }
+
+    @Override
+    public void initData() {
+
+    }
+
+    @Override
+    public void requestSendTask(@NonNull final String task_name) {
+
+        if (TextUtils.isEmpty(task_name)) return;
+
+        // TODO - CHECK
+        String dueTo = "";
+
+        // TODO - CHECK
+        ArrayList<MemberInfoData> listSelectedMember = TaskMemberDataRepository.getInstance().getSelectedMemberList();
+
+        // TODO - CHECK
+        CampaignData campaignData = TaskCampaignDataRepository.getInstance().getSelectedCampaignData();
+
+        TaskDataRepository.getInstance().requestSendTask(getContext(),
+                task_name,
+                dueTo,
+                listSelectedMember,
+                campaignData,
+                new HanwhaNetworkCallback() {
+                    @Override
+                    public void onSuccess(Object response) {
+                        mView.showToastConfirm(R.string.alert_completed);
+                        getActivity().setResult(Activity.RESULT_OK);
+                        getActivity().finish();
+                    }
+
+                    @Override
+                    public void onFailure(HanwhaNetworkError error) {
+                        mView.showAlert(error, new HFDefaultDialog.OnDialogCallback() {
+                            @Override
+                            public void onNegative() {
+
+                            }
+
+                            @Override
+                            public void onPositive() {
+                                requestSendTask(task_name);
+                            }
+                        });
+                    }
+
+                    @Override
+                    public void onPreExecute() {
+                        mView.showLoadingDialog(true);
+                    }
+
+                    @Override
+                    public void onPostExecute() {
+                        mView.showLoadingDialog(false);
+                    }
+                });
+    }
+
+    @Override
+    public Context getContext() {
+        return (Context) mView;
+    }
+
+    private Activity getActivity() {
+        return (Activity) mView;
+    }
+}

+ 6 - 0
app/src/main/java/kr/co/hanwha/hifive/screen/main/setting/MainSettingFragment.java

@@ -61,6 +61,7 @@ public class MainSettingFragment extends BaseFragment implements MainSettingCont
     private LinearLayout mLayoutUnit;
     private LinearLayout mLayoutUnitContainer;
     private LinearLayout mLayoutTab;
+    private LinearLayout mLayoutHelpdesk;
     private TextView mTextViewTab;
     private Switch mSwitchAlarm;
     private TextView mTextViewVersion;
@@ -89,6 +90,7 @@ public class MainSettingFragment extends BaseFragment implements MainSettingCont
         mLayoutUnit = (LinearLayout) parent.findViewById(R.id.unit_linearLayout);
         mLayoutUnitContainer = (LinearLayout) parent.findViewById(R.id.unitContainer_linearLayout);
         mLayoutTab = (LinearLayout) parent.findViewById(R.id.tab_linearLayout);
+        mLayoutHelpdesk = (LinearLayout)parent.findViewById(R.id.helpdesk_linearLayout);
         mTextViewTab = (TextView) parent.findViewById(R.id.tab_textView);
         mSwitchAlarm = (Switch) parent.findViewById(R.id.alarm_switch);
         mTextViewVersion = (TextView) parent.findViewById(R.id.version_textView);
@@ -101,6 +103,7 @@ public class MainSettingFragment extends BaseFragment implements MainSettingCont
         mLayoutTab.setOnClickListener(onClickListener);
         mTextViewUpdate.setOnClickListener(onClickListener);
         mTextViewVersion.setOnClickListener(onClickListener);
+        mLayoutHelpdesk.setOnClickListener(onClickListener);
 
         mPresenter = new MainSettingPresenter(getActivity(), getActivity(), this);
         mPresenter.initData();
@@ -264,6 +267,9 @@ public class MainSettingFragment extends BaseFragment implements MainSettingCont
                         showAdmin();
                     }
                     break;
+                case R.id.helpdesk_linearLayout:
+                    HFActivityUtil.startHelpdeskActivity(getActivity());
+                    break;
             }
         }
     };

+ 14 - 0
app/src/main/java/kr/co/hanwha/hifive/util/HFActivityUtil.java

@@ -20,6 +20,7 @@ import kr.co.hanwha.hifive.screen.intro.IntroActivity;
 import kr.co.hanwha.hifive.screen.main.MainActivity;
 import kr.co.hanwha.hifive.screen.main.dashboard.DashboardProjectActivity;
 import kr.co.hanwha.hifive.screen.main.home.MainOKRActivity;
+import kr.co.hanwha.hifive.screen.main.setting.HelpdeskActivity;
 import kr.co.hanwha.hifive.screen.main.setting.MainSettingWebviewActivity;
 import kr.co.hanwha.hifive.screen.main.setting.SettingScreenActivity;
 import kr.co.hanwha.hifive.screen.main.webview.NoticeWebViewActivity;
@@ -199,6 +200,19 @@ public class HFActivityUtil {
         activity.startActivity(intent);
     }
 
+    /**
+     * 설정 - 도와줘요 개발팀
+     *
+     * @param activity Activity
+     */
+    public static void startHelpdeskActivity(@NonNull Activity activity) {
+        if (HelpdeskActivity.class.getSimpleName().equals(LAST_TAG)) return;
+        LAST_TAG = HelpdeskActivity.class.getSimpleName();
+
+        Intent intent = new Intent(activity, HelpdeskActivity.class);
+        activity.startActivity(intent);
+    }
+
 
     /**
      * Common Webview

+ 0 - 20
app/src/main/java/kr/co/hanwha/hifive/util/HFDateUtil.java

@@ -124,26 +124,6 @@ public class HFDateUtil {
             } else {
                 inputDate = 1 + context.getString(R.string.date_minutes_ago);
             }
-            /*
-            if (d > 60 * 60 * 24) {
-                outputFormat = "yyyy-MM-dd";
-                inputDate = getDateFormatFromTimestamp(inputTime, outputFormat);
-            } else if (d > 60 * 60 * 3) {
-                outputFormat = "yyyy-MM-dd";
-                inputDate = getDateFormatFromTimestamp(inputTime, outputFormat);
-                String currentDate = getDateFormatFromTimestamp(currentTime, outputFormat);
-                if (currentDate.equals(inputDate)) {
-                    outputFormat = "HH:mm";
-                    inputDate = getDateFormatFromTimestamp(inputTime, outputFormat);
-                }
-            } else if (d > 60 * 60) {
-                inputDate = Long.toString((d / (60 * 60))) + context.getString(R.string.date_hours_ago);
-            } else if (d > 60) {
-                inputDate = Long.toString((d / 60)) + context.getString(R.string.date_minutes_ago);
-            } else {
-                inputDate = 1 + context.getString(R.string.date_minutes_ago);
-            }
-            */
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 50 - 0
app/src/main/res/layout/activity_helpdesk.xml

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/white"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="45dp"
+        android:layout_weight="0"
+        android:gravity="center_vertical"
+        android:orientation="horizontal">
+
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:layout_weight="1" />
+
+        <kr.co.hanwha.hifive.view.FontTextView
+            android:id="@+id/register_textView"
+            style="@style/font_notosans_r_14sp_white01"
+            android:layout_width="80.5dp"
+            android:layout_height="36.5dp"
+            android:layout_marginRight="9dp"
+            android:layout_weight="0"
+            android:background="@drawable/button_rounded_rectangle_login_bg"
+            android:gravity="center"
+            android:text="@string/add_task_register" />
+    </LinearLayout>
+
+    <EditText
+        android:id="@+id/editText"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_margin="10dp"
+        android:background="@color/white"
+        android:gravity="top"
+        android:hint="도와줄래?"
+        android:inputType="none"
+        android:lineSpacingExtra="5dp"
+        android:minHeight="52dp"
+        android:minLines="5"
+        android:paddingBottom="5dp"
+        android:textColor="@color/hf_grey01"
+        android:textColorHint="#cccccc"
+        android:textSize="28sp"
+        android:theme="@style/EditTextTheme" />
+</LinearLayout>

+ 38 - 0
app/src/main/res/layout/fragment_main_setting.xml

@@ -233,6 +233,43 @@
                 android:layout_marginTop="10dp"
                 android:background="@color/white"
                 android:orientation="vertical">
+                <!-- 도와줘요 개발팀 -->
+                <LinearLayout
+                    android:id="@+id/helpdesk_linearLayout"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:background="@drawable/list_bg_translucent_grey13"
+                    android:gravity="center_vertical"
+                    android:minHeight="59dp"
+                    android:orientation="horizontal">
+
+                    <kr.co.hanwha.hifive.view.FontTextView
+                        style="@style/font_notosans_b_13sp_grey01"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="16dp"
+                        android:layout_weight="0"
+                        android:text="도와줘요 개발팀" />
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:layout_weight="1" />
+
+                    <ImageView
+                        android:layout_width="wrap_content"
+                        android:layout_height="44dp"
+                        android:layout_marginRight="16dp"
+                        android:layout_weight="0"
+                        android:scaleType="centerInside"
+                        android:src="@mipmap/ic_ar_right" />
+                </LinearLayout>
+                <!-- 도와줘요 개발팀 end -->
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="0.5dp"
+                    android:background="@color/hf_grey27" />
 
                 <LinearLayout
                     android:id="@+id/tab_linearLayout"
@@ -366,6 +403,7 @@
                         android:layout_height="1dp" />
                 </LinearLayout>
             </LinearLayout>
+            <!-- 버전 End -->
         </LinearLayout>
     </ScrollView>
 </RelativeLayout>