Full Code of Ahmed-plusplus/Good_Point for AI

temp2 4881376f6f2b cached
362 files
38.3 MB
481.3k tokens
935 symbols
1 requests
Download .txt
Showing preview only (1,650K chars total). Download the full file or copy to clipboard to get everything.
Repository: Ahmed-plusplus/Good_Point
Branch: temp2
Commit: 4881376f6f2b
Files: 362
Total size: 38.3 MB

Directory structure:
gitextract_2l0lu64v/

├── .gitignore
├── .idea/
│   ├── .name
│   ├── codeStyles/
│   │   └── Project.xml
│   ├── compiler.xml
│   ├── gradle.xml
│   ├── jarRepositories.xml
│   ├── misc.xml
│   ├── render.experimental.xml
│   ├── runConfigurations.xml
│   ├── shelf/
│   │   ├── Uncommitted_changes_before_Update_at_2_13_2021_11_27_PM_[Default_Changelist]/
│   │   │   └── shelved.patch
│   │   ├── Uncommitted_changes_before_Update_at_2_13_2021_11_27_PM__Default_Changelist_.xml
│   │   └── Uncommitted_changes_before_Update_at_5_26_2021_1_21_AM_[Default_Changelist]/
│   │       └── shelved.patch
│   └── vcs.xml
├── README.md
├── app/
│   ├── .gitignore
│   ├── .idea/
│   │   └── workspace.xml
│   ├── build.gradle
│   ├── google-services.json
│   ├── proguard-rules.pro
│   └── src/
│       ├── androidTest/
│       │   └── java/
│       │       └── com/
│       │           └── helloworld/
│       │               └── goodpoint/
│       │                   └── ExampleInstrumentedTest.java
│       ├── debug/
│       │   └── res/
│       │       └── values/
│       │           └── google_maps_api.xml
│       ├── main/
│       │   ├── AndroidManifest.xml
│       │   ├── assets/
│       │   │   ├── detect.tflite
│       │   │   ├── face_model_v5.tflite
│       │   │   ├── labelmap.txt
│       │   │   └── objectDetection.tflite
│       │   ├── java/
│       │   │   ├── com/
│       │   │   │   └── helloworld/
│       │   │   │       └── goodpoint/
│       │   │   │           ├── App.java
│       │   │   │           ├── adapter/
│       │   │   │           │   ├── MyExpandableListAdapter.java
│       │   │   │           │   └── NotificationListAdapter.java
│       │   │   │           ├── detection/
│       │   │   │           │   ├── CameraActivity.java
│       │   │   │           │   ├── CameraConnectionFragment.java
│       │   │   │           │   ├── DetectorActivity.java
│       │   │   │           │   ├── LegacyCameraConnectionFragment.java
│       │   │   │           │   ├── customview/
│       │   │   │           │   │   ├── AutoFitTextureView.java
│       │   │   │           │   │   ├── OverlayView.java
│       │   │   │           │   │   ├── RecognitionScoreView.java
│       │   │   │           │   │   └── ResultsView.java
│       │   │   │           │   ├── env/
│       │   │   │           │   │   ├── BorderedText.java
│       │   │   │           │   │   ├── ImageUtils.java
│       │   │   │           │   │   ├── Logger.java
│       │   │   │           │   │   └── Size.java
│       │   │   │           │   └── tracking/
│       │   │   │           │       └── MultiBoxTracker.java
│       │   │   │           ├── pojo/
│       │   │   │           │   ├── FoundItem.java
│       │   │   │           │   ├── FoundPerson.java
│       │   │   │           │   ├── LostItem.java
│       │   │   │           │   ├── LostObject.java
│       │   │   │           │   ├── LostPerson.java
│       │   │   │           │   ├── NotificationItem.java
│       │   │   │           │   ├── ObjectLocation.java
│       │   │   │           │   ├── RegUser.java
│       │   │   │           │   ├── Token.java
│       │   │   │           │   ├── User.java
│       │   │   │           │   └── UserMap.java
│       │   │   │           ├── retrofit/
│       │   │   │           │   ├── ApiClient.java
│       │   │   │           │   ├── ApiInterface.java
│       │   │   │           │   └── Decode.java
│       │   │   │           ├── ui/
│       │   │   │           │   ├── ActionActivity.java
│       │   │   │           │   ├── AdapterOfMatchFragment.java
│       │   │   │           │   ├── Alert.java
│       │   │   │           │   ├── DetailsActivity.java
│       │   │   │           │   ├── ExternalActivity.java
│       │   │   │           │   ├── FoundMapFragment.java
│       │   │   │           │   ├── GlobalVar.java
│       │   │   │           │   ├── HomeActivity.java
│       │   │   │           │   ├── HomeFragment.java
│       │   │   │           │   ├── ID_cardDetection.java
│       │   │   │           │   ├── IdCard.java
│       │   │   │           │   ├── MainActivity.java
│       │   │   │           │   ├── MatchFragment.java
│       │   │   │           │   ├── NotificationActivity.java
│       │   │   │           │   ├── PrefManager.java
│       │   │   │           │   ├── ProfileFragment.java
│       │   │   │           │   ├── SigninActivity.java
│       │   │   │           │   ├── SignupActivity.java
│       │   │   │           │   ├── SlideAdapter.java
│       │   │   │           │   ├── WelcomeActivity.java
│       │   │   │           │   ├── candidate/
│       │   │   │           │   │   ├── CandidatePage.java
│       │   │   │           │   │   ├── Item.java
│       │   │   │           │   │   ├── ItemAdapter.java
│       │   │   │           │   │   ├── SubItem.java
│       │   │   │           │   │   ├── SubItemAdapter.java
│       │   │   │           │   │   └── lostitem.java
│       │   │   │           │   ├── check_registration.java
│       │   │   │           │   ├── forgetPasswordScreens/
│       │   │   │           │   │   ├── ForgetPassSuccessMessage.java
│       │   │   │           │   │   ├── ForgetPasswordWithEmail.java
│       │   │   │           │   │   ├── ForgetPasswordWithPhone.java
│       │   │   │           │   │   ├── MakeSelection.java
│       │   │   │           │   │   ├── SetNewPassword.java
│       │   │   │           │   │   └── VerifiyCode.java
│       │   │   │           │   ├── lostFoundObject/
│       │   │   │           │   │   ├── FoundObjectActivity.java
│       │   │   │           │   │   ├── LostObjectDetailsActivity.java
│       │   │   │           │   │   ├── ObjectFragment.java
│       │   │   │           │   │   ├── PersonFragment.java
│       │   │   │           │   │   └── objectDataType.java
│       │   │   │           │   ├── myService/
│       │   │   │           │   │   ├── MyService.java
│       │   │   │           │   │   └── NotificationBroadcast.java
│       │   │   │           │   ├── prepareList.java
│       │   │   │           │   ├── select_multiple_faces/
│       │   │   │           │   │   ├── ItemList.java
│       │   │   │           │   │   ├── ItemListAdapter.java
│       │   │   │           │   │   ├── Selection.java
│       │   │   │           │   │   ├── SubItemList.java
│       │   │   │           │   │   └── SubItemListAdapter.java
│       │   │   │           │   ├── sub.java
│       │   │   │           │   ├── subAdapter.java
│       │   │   │           │   └── test.java
│       │   │   │           └── utils/
│       │   │   │               └── Draw.java
│       │   │   └── fragments/
│       │   │       ├── PageFragment1.java
│       │   │       ├── PageFragment2.java
│       │   │       └── PageFragment3.java
│       │   └── res/
│       │       ├── anim/
│       │       │   └── rotate_splash.xml
│       │       ├── drawable/
│       │       │   ├── account_circle.xml
│       │       │   ├── active_dot.xml
│       │       │   ├── add_new_photo2.xml
│       │       │   ├── application_icon.xml
│       │       │   ├── application_icon2.xml
│       │       │   ├── background.xml
│       │       │   ├── background2.xml
│       │       │   ├── bottom_sheet_background.xml
│       │       │   ├── btn_login.xml
│       │       │   ├── buttons.xml
│       │       │   ├── circle.xml
│       │       │   ├── circle2.xml
│       │       │   ├── custom_button.xml
│       │       │   ├── custom_button_location.xml
│       │       │   ├── default_dot.xml
│       │       │   ├── details_background.xml
│       │       │   ├── details_btns.xml
│       │       │   ├── general_back_icon.xml
│       │       │   ├── halfcircle.xml
│       │       │   ├── ic_account_circle.xml
│       │       │   ├── ic_add.xml
│       │       │   ├── ic_background.xml
│       │       │   ├── ic_baseline_account_circle_150.xml
│       │       │   ├── ic_baseline_account_circle_24.xml
│       │       │   ├── ic_baseline_add_a_photo_24.xml
│       │       │   ├── ic_baseline_archive_24.xml
│       │       │   ├── ic_baseline_assignment_turned_in_24.xml
│       │       │   ├── ic_baseline_business_center_24.xml
│       │       │   ├── ic_baseline_check_24.xml
│       │       │   ├── ic_baseline_check_circle_24.xml
│       │       │   ├── ic_baseline_date_range_24.xml
│       │       │   ├── ic_baseline_email_24.xml
│       │       │   ├── ic_baseline_exit_to_app_24.xml
│       │       │   ├── ic_baseline_fact_check_24.xml
│       │       │   ├── ic_baseline_feedback_24.xml
│       │       │   ├── ic_baseline_gallery_24.xml
│       │       │   ├── ic_baseline_help_24.xml
│       │       │   ├── ic_baseline_location_on_24.xml
│       │       │   ├── ic_baseline_location_on_241.xml
│       │       │   ├── ic_baseline_location_on_242.xml
│       │       │   ├── ic_baseline_location_on_243.xml
│       │       │   ├── ic_baseline_lock_24.xml
│       │       │   ├── ic_baseline_navigate_next_24.xml
│       │       │   ├── ic_baseline_notifications_24.xml
│       │       │   ├── ic_baseline_person_24.xml
│       │       │   ├── ic_baseline_phone_android_24.xml
│       │       │   ├── ic_baseline_photo_camera_24.xml
│       │       │   ├── ic_baseline_remove_red_eye_24.xml
│       │       │   ├── ic_baseline_room_24.xml
│       │       │   ├── ic_baseline_search_24.xml
│       │       │   ├── ic_baseline_search_241.xml
│       │       │   ├── ic_baseline_settings_24.xml
│       │       │   ├── ic_baseline_share_24.xml
│       │       │   ├── ic_baseline_star_rate_24.xml
│       │       │   ├── ic_baseline_visibility_24.xml
│       │       │   ├── ic_baseline_visibility_off_24.xml
│       │       │   ├── ic_close.xml
│       │       │   ├── ic_design.xml
│       │       │   ├── ic_done.xml
│       │       │   ├── ic_found.xml
│       │       │   ├── ic_home.xml
│       │       │   ├── ic_home_background.xml
│       │       │   ├── ic_image.xml
│       │       │   ├── ic_launcher_background.xml
│       │       │   ├── ic_launcher_background1.xml
│       │       │   ├── ic_launcher_foreground.xml
│       │       │   ├── ic_location.xml
│       │       │   ├── ic_lock.xml
│       │       │   ├── ic_lost.xml
│       │       │   ├── ic_notification.xml
│       │       │   ├── ic_password.xml
│       │       │   ├── ic_password_reset.xml
│       │       │   ├── ic_photo.xml
│       │       │   ├── ic_prof_pic.xml
│       │       │   ├── ic_profile.xml
│       │       │   ├── ic_realcam.xml
│       │       │   ├── ic_rotat_image.xml
│       │       │   ├── ic_signup.xml
│       │       │   ├── location_signin.xml
│       │       │   ├── nav_head_color.xml
│       │       │   ├── notification_button1.xml
│       │       │   ├── notification_button2.xml
│       │       │   ├── oval.xml
│       │       │   ├── q_circle.xml
│       │       │   ├── radius_expand.xml
│       │       │   ├── show_password.xml
│       │       │   ├── signin_background.xml
│       │       │   ├── switch_icon.xml
│       │       │   ├── wave.xml
│       │       │   └── white_oval.xml
│       │       ├── drawable-mdpi/
│       │       │   └── avd_done.xml
│       │       ├── drawable-v24/
│       │       │   └── ic_launcher_foreground.xml
│       │       ├── drawable-xxxhdpi/
│       │       │   ├── bottom_sheet_bg.xml
│       │       │   ├── ic_baseline_add.xml
│       │       │   ├── ic_baseline_remove.xml
│       │       │   ├── ic_launcher_background.xml
│       │       │   ├── ic_launcher_foreground.xml
│       │       │   └── rectangle.xml
│       │       ├── font/
│       │       │   ├── muli_black.xml
│       │       │   ├── muli_extralight.xml
│       │       │   └── roboto_bold.xml
│       │       ├── layout/
│       │       │   ├── activity_action.xml
│       │       │   ├── activity_candidate_page.xml
│       │       │   ├── activity_check_registration.xml
│       │       │   ├── activity_details.xml
│       │       │   ├── activity_external.xml
│       │       │   ├── activity_forget_pass_success_message.xml
│       │       │   ├── activity_forget_password.xml
│       │       │   ├── activity_forget_password_with_phone.xml
│       │       │   ├── activity_found_object.xml
│       │       │   ├── activity_home.xml
│       │       │   ├── activity_i_d_card_detection.xml
│       │       │   ├── activity_item.xml
│       │       │   ├── activity_lost_object_details.xml
│       │       │   ├── activity_main.xml
│       │       │   ├── activity_make_selection.xml
│       │       │   ├── activity_notification.xml
│       │       │   ├── activity_set_new_password.xml
│       │       │   ├── activity_signin.xml
│       │       │   ├── activity_signup.xml
│       │       │   ├── activity_verifiy_code.xml
│       │       │   ├── activity_welcome.xml
│       │       │   ├── alert.xml
│       │       │   ├── alert_id_card.xml
│       │       │   ├── bottom_sheet_dialog.xml
│       │       │   ├── child_item.xml
│       │       │   ├── custom_map_dialog.xml
│       │       │   ├── fragment_home.xml
│       │       │   ├── fragment_map.xml
│       │       │   ├── fragment_match.xml
│       │       │   ├── fragment_object.xml
│       │       │   ├── fragment_person.xml
│       │       │   ├── fragment_profile.xml
│       │       │   ├── group_item.xml
│       │       │   ├── head_nav.xml
│       │       │   ├── images.xml
│       │       │   ├── images_be_removed.xml
│       │       │   ├── layout_sub_item.xml
│       │       │   ├── layout_sub_list_items.xml
│       │       │   ├── multiple_faces_selection.xml
│       │       │   ├── notification_item.xml
│       │       │   ├── progress_bar_alert.xml
│       │       │   ├── r.xml
│       │       │   ├── recycler_view_of_images.xml
│       │       │   ├── row.xml
│       │       │   ├── rr.xml
│       │       │   ├── slider_page1.xml
│       │       │   ├── slider_page2.xml
│       │       │   ├── slider_page3.xml
│       │       │   ├── spinner_item.xml
│       │       │   ├── tfe_od_activity_camera.xml
│       │       │   └── tfe_od_camera_connection_fragment_tracking.xml
│       │       ├── layout-land/
│       │       │   ├── activity_action.xml
│       │       │   ├── activity_found_object.xml
│       │       │   ├── activity_lost_object_details.xml
│       │       │   ├── activity_main.xml
│       │       │   ├── activity_signin.xml
│       │       │   ├── activity_signup.xml
│       │       │   ├── activity_welcome.xml
│       │       │   ├── fragment_object.xml
│       │       │   ├── fragment_person.xml
│       │       │   ├── fragment_profile.xml
│       │       │   ├── slider_page1.xml
│       │       │   ├── slider_page2.xml
│       │       │   └── slider_page3.xml
│       │       ├── menu/
│       │       │   ├── bottom_nav_menu.xml
│       │       │   ├── choose_location.xml
│       │       │   ├── choose_photo.xml
│       │       │   ├── drawer_menu.xml
│       │       │   ├── home_menu.xml
│       │       │   └── menu_main.xml
│       │       ├── raw/
│       │       │   └── haarcascade_frontalface_alt2.xml
│       │       └── values/
│       │           ├── colors.xml
│       │           ├── font_certs.xml
│       │           ├── preloaded_fonts.xml
│       │           ├── strings.xml
│       │           └── styles.xml
│       ├── release/
│       │   └── res/
│       │       └── values/
│       │           └── google_maps_api.xml
│       └── test/
│           └── java/
│               └── com/
│                   └── helloworld/
│                       └── goodpoint/
│                           └── ExampleUnitTest.java
├── backend/
│   ├── .idea/
│   │   ├── .gitignore
│   │   ├── inspectionProfiles/
│   │   │   └── profiles_settings.xml
│   │   ├── misc.xml
│   │   ├── modules.xml
│   │   └── vcs.xml
│   ├── find_losts/
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── map.txt
│   │   ├── migrations/
│   │   │   ├── 0001_initial.py
│   │   │   ├── 0002_alter_matchedperson_percent.py
│   │   │   └── __init__.py
│   │   ├── models.py
│   │   ├── serializers.py
│   │   ├── tests.py
│   │   ├── url.py
│   │   └── views.py
│   ├── good_point/
│   │   ├── .idea/
│   │   │   ├── .gitignore
│   │   │   ├── inspectionProfiles/
│   │   │   │   └── profiles_settings.xml
│   │   │   ├── misc.xml
│   │   │   ├── modules.xml
│   │   │   ├── vcs.xml
│   │   │   └── workspace.xml
│   │   ├── __init__.py
│   │   ├── asgi.py
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   ├── manage.py
│   ├── notification/
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── migrations/
│   │   │   ├── 0001_initial.py
│   │   │   ├── 0002_notification_user_id.py
│   │   │   └── __init__.py
│   │   ├── models.py
│   │   ├── serializers.py
│   │   ├── tests.py
│   │   ├── url.py
│   │   └── views.py
│   └── user_account/
│       ├── __init__.py
│       ├── admin.py
│       ├── apps.py
│       ├── migrations/
│       │   ├── 0001_initial.py
│       │   └── __init__.py
│       ├── models.py
│       ├── serializers.py
│       ├── tests.py
│       ├── url.py
│       └── views.py
├── build.gradle
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── lib_task_api/
│   ├── .gitignore
│   ├── build.gradle
│   ├── consumer-rules.pro
│   ├── proguard-rules.pro
│   └── src/
│       ├── main/
│       │   ├── AndroidManifest.xml
│       │   └── java/
│       │       └── com/
│       │           └── example/
│       │               └── lib_task_api/
│       │                   ├── Detector.java
│       │                   └── TFLiteObjectDetectionAPIModel.java
│       └── test/
│           └── java/
│               └── com/
│                   └── example/
│                       └── lib_task_api/
│                           └── ExampleUnitTest.java
├── mylibrary/
│   ├── .gitignore
│   ├── build.gradle
│   ├── consumer-rules.pro
│   ├── proguard-rules.pro
│   └── src/
│       ├── main/
│       │   ├── AndroidManifest.xml
│       │   └── java/
│       │       └── com/
│       │           └── example/
│       │               └── lib_task_api/
│       │                   ├── Detector.java
│       │                   └── TFLiteObjectDetectionAPIModel.java
│       └── test/
│           └── java/
│               └── com/
│                   └── example/
│                       └── lib_task_api/
│                           └── ExampleUnitTest.java
└── settings.gradle

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
#GoodPoint


================================================
FILE: .idea/.name
================================================
Good Point

================================================
FILE: .idea/codeStyles/Project.xml
================================================
<component name="ProjectCodeStyleConfiguration">
  <code_scheme name="Project" version="173">
    <JetCodeStyleSettings>
      <option name="PACKAGES_TO_USE_STAR_IMPORTS">
        <value>
          <package name="java.util" alias="false" withSubpackages="false" />
          <package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
          <package name="io.ktor" alias="false" withSubpackages="true" />
        </value>
      </option>
      <option name="PACKAGES_IMPORT_LAYOUT">
        <value>
          <package name="" alias="false" withSubpackages="true" />
          <package name="java" alias="false" withSubpackages="true" />
          <package name="javax" alias="false" withSubpackages="true" />
          <package name="kotlin" alias="false" withSubpackages="true" />
          <package name="" alias="true" withSubpackages="true" />
        </value>
      </option>
    </JetCodeStyleSettings>
    <codeStyleSettings language="XML">
      <indentOptions>
        <option name="CONTINUATION_INDENT_SIZE" value="4" />
      </indentOptions>
      <arrangement>
        <rules>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>xmlns:android</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>^$</XML_NAMESPACE>
                </AND>
              </match>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>xmlns:.*</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>^$</XML_NAMESPACE>
                </AND>
              </match>
              <order>BY_NAME</order>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>.*:id</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
                </AND>
              </match>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>.*:name</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
                </AND>
              </match>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>name</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>^$</XML_NAMESPACE>
                </AND>
              </match>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>style</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>^$</XML_NAMESPACE>
                </AND>
              </match>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>.*</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>^$</XML_NAMESPACE>
                </AND>
              </match>
              <order>BY_NAME</order>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>.*</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
                </AND>
              </match>
              <order>ANDROID_ATTRIBUTE_ORDER</order>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>.*</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>.*</XML_NAMESPACE>
                </AND>
              </match>
              <order>BY_NAME</order>
            </rule>
          </section>
        </rules>
      </arrangement>
    </codeStyleSettings>
  </code_scheme>
</component>

================================================
FILE: .idea/compiler.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="CompilerConfiguration">
    <bytecodeTargetLevel target="1.8" />
  </component>
</project>

================================================
FILE: .idea/gradle.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="GradleMigrationSettings" migrationVersion="1" />
  <component name="GradleSettings">
    <option name="linkedExternalProjectsSettings">
      <GradleProjectSettings>
        <option name="testRunner" value="PLATFORM" />
        <option name="distributionType" value="DEFAULT_WRAPPED" />
        <option name="externalProjectPath" value="$PROJECT_DIR$" />
        <option name="gradleHome" value="$USER_HOME$/Downloads/Compressed/gradle-6.7.1" />
        <option name="modules">
          <set>
            <option value="$PROJECT_DIR$" />
            <option value="$PROJECT_DIR$/app" />
            <option value="$PROJECT_DIR$/lib_task_api" />
            <option value="$PROJECT_DIR$/mylibrary" />
          </set>
        </option>
        <option name="resolveModulePerSourceSet" value="false" />
        <option name="useQualifiedModuleNames" value="true" />
      </GradleProjectSettings>
    </option>
  </component>
</project>

================================================
FILE: .idea/jarRepositories.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="RemoteRepositoriesConfiguration">
    <remote-repository>
      <option name="id" value="central" />
      <option name="name" value="Maven Central repository" />
      <option name="url" value="https://repo1.maven.org/maven2" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="jboss.community" />
      <option name="name" value="JBoss Community repository" />
      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="BintrayJCenter" />
      <option name="name" value="BintrayJCenter" />
      <option name="url" value="https://jcenter.bintray.com/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="Google" />
      <option name="name" value="Google" />
      <option name="url" value="https://dl.google.com/dl/android/maven2/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="maven" />
      <option name="name" value="maven" />
      <option name="url" value="https://jitpack.io" />
    </remote-repository>
  </component>
</project>

================================================
FILE: .idea/misc.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
    <output url="file://$PROJECT_DIR$/build/classes" />
  </component>
  <component name="ProjectType">
    <option name="id" value="Android" />
  </component>
</project>

================================================
FILE: .idea/render.experimental.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="RenderSettings">
    <option name="showDecorations" value="true" />
  </component>
</project>

================================================
FILE: .idea/runConfigurations.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="RunConfigurationProducerService">
    <option name="ignoredProducers">
      <set>
        <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
      </set>
    </option>
  </component>
</project>

================================================
FILE: .idea/shelf/Uncommitted_changes_before_Update_at_2_13_2021_11_27_PM_[Default_Changelist]/shelved.patch
================================================
Index: backend/.env
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- backend/.env	(date 1613017568849)
+++ backend/.env	(date 1613017568849)
@@ -0,0 +1,1 @@
+export JWT_SECRET_KEY = '[,]f,dkjSECRET_KEY'
\ No newline at end of file


================================================
FILE: .idea/shelf/Uncommitted_changes_before_Update_at_2_13_2021_11_27_PM__Default_Changelist_.xml
================================================
<changelist name="Uncommitted_changes_before_Update_at_2_13_2021_11_27_PM_[Default_Changelist]" date="1613251665327" recycled="false" toDelete="true">
  <option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Uncommitted_changes_before_Update_at_2_13_2021_11_27_PM_[Default_Changelist]/shelved.patch" />
  <option name="DESCRIPTION" value="Uncommitted changes before Update at 2/13/2021 11:27 PM [Default Changelist]" />
</changelist>

================================================
FILE: .idea/shelf/Uncommitted_changes_before_Update_at_5_26_2021_1_21_AM_[Default_Changelist]/shelved.patch
================================================
Index: app/src/main/res/layout/fragment_profile.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+><?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<ScrollView\r\n    xmlns:android=\"http://schemas.android.com/apk/res/android\"\r\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\r\n    xmlns:tools=\"http://schemas.android.com/tools\"\r\n    tools:context=\".ui.ProfileFragment\"\r\n    android:layout_width=\"match_parent\"\r\n    android:layout_height=\"match_parent\">\r\n\r\n    <LinearLayout\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"match_parent\"\r\n        android:orientation=\"vertical\">\r\n\r\n        <LinearLayout\r\n        android:orientation=\"vertical\"\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:padding=\"@dimen/_8sdp\"\r\n        android:background=\"@drawable/nav_head_color\"\r\n        android:gravity=\"center\">\r\n\r\n        <de.hdodenhof.circleimageview.CircleImageView\r\n            android:id=\"@+id/profile_pic\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:background=\"@drawable/ic_prof_pic\"\r\n            android:layout_gravity=\"center\" />\r\n\r\n        <TextView\r\n            android:id=\"@+id/above_name\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:layout_gravity=\"center\"\r\n            android:textSize=\"@dimen/_20ssp\"\r\n            android:text=\"@string/userName\"\r\n            android:textStyle=\"bold\"\r\n            android:textColor=\"@android:color/white\"/>\r\n\r\n        <TextView\r\n            android:id=\"@+id/above_mail\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:layout_gravity=\"center\"\r\n            android:textSize=\"@dimen/_15ssp\"\r\n            android:text=\"goodpoint@sci.asu.edu.eg\"\r\n            android:textColor=\"@android:color/white\" />\r\n        </LinearLayout>\r\n\r\n        <LinearLayout\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:orientation=\"horizontal\"\r\n            android:paddingTop=\"@dimen/_10sdp\">\r\n\r\n            <LinearLayout\r\n                android:layout_width=\"wrap_content\"\r\n                android:layout_height=\"wrap_content\"\r\n                android:orientation=\"vertical\">\r\n\r\n                <TextView\r\n                    android:id=\"@+id/lost_no\"\r\n                    android:layout_width=\"wrap_content\"\r\n                    android:layout_height=\"wrap_content\"\r\n                    android:paddingLeft=\"@dimen/_35sdp\"\r\n                    android:text=\"0\"\r\n                    android:textColor=\"@color/black\"\r\n                    android:textSize=\"@dimen/_20ssp\"\r\n                    android:textStyle=\"bold\">\r\n                </TextView>\r\n                <TextView\r\n                    android:layout_width=\"wrap_content\"\r\n                    android:layout_height=\"wrap_content\"\r\n                    android:text=\"Lost\"\r\n                    android:textSize=\"@dimen/_14ssp\"\r\n                    android:paddingLeft=\"@dimen/_25sdp\">\r\n                </TextView>\r\n\r\n\r\n            </LinearLayout>\r\n\r\n            <View\r\n                android:layout_width=\"@dimen/_1sdp\"\r\n                android:layout_height=\"@dimen/_50sdp\"\r\n                android:background=\"#808080\"\r\n                android:layout_marginLeft=\"@dimen/_35sdp\"/>\r\n\r\n            <LinearLayout\r\n                android:layout_width=\"wrap_content\"\r\n                android:layout_height=\"wrap_content\"\r\n                android:orientation=\"vertical\">\r\n\r\n                <TextView\r\n                    android:id=\"@+id/match_no\"\r\n                    android:layout_width=\"wrap_content\"\r\n                    android:layout_height=\"wrap_content\"\r\n                    android:paddingLeft=\"@dimen/_55sdp\"\r\n                    android:text=\"0\"\r\n                    android:textColor=\"#C4207720\"\r\n                    android:textSize=\"@dimen/_20ssp\"\r\n                    android:textStyle=\"bold\">\r\n                </TextView>\r\n                <TextView\r\n                    android:layout_width=\"wrap_content\"\r\n                    android:layout_height=\"wrap_content\"\r\n                    android:text=\"Matched\"\r\n                    android:textSize=\"@dimen/_14ssp\"\r\n                    android:paddingLeft=\"@dimen/_32sdp\">\r\n                </TextView>\r\n\r\n            </LinearLayout>\r\n\r\n            <View\r\n                android:layout_width=\"@dimen/_1sdp\"\r\n                android:layout_height=\"@dimen/_50sdp\"\r\n                android:background=\"#808080\"\r\n                android:layout_marginLeft=\"@dimen/_30sdp\"/>\r\n\r\n            <LinearLayout\r\n                android:layout_width=\"wrap_content\"\r\n                android:layout_height=\"wrap_content\"\r\n                android:orientation=\"vertical\">\r\n\r\n                <TextView\r\n                    android:id=\"@+id/found_no\"\r\n                    android:layout_width=\"wrap_content\"\r\n                    android:layout_height=\"wrap_content\"\r\n                    android:text=\"0\"\r\n                    android:textColor=\"@color/black\"\r\n                    android:textStyle=\"bold\"\r\n                    android:textSize=\"@dimen/_20ssp\"\r\n                    android:paddingLeft=\"@dimen/_45sdp\">\r\n                </TextView>\r\n                <TextView\r\n                    android:layout_width=\"wrap_content\"\r\n                    android:layout_height=\"wrap_content\"\r\n                    android:text=\"Found\"\r\n                    android:textSize=\"@dimen/_14ssp\"\r\n                    android:paddingLeft=\"@dimen/_30sdp\">\r\n                </TextView>\r\n\r\n            </LinearLayout>\r\n\r\n\r\n        </LinearLayout>\r\n\r\n        <TextView\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:text=\"Account Info\"\r\n            android:textSize=\"@dimen/_20ssp\"\r\n            android:textColor=\"@color/black\"\r\n            android:textStyle=\"bold\"\r\n            android:paddingTop=\"@dimen/_10sdp\"\r\n            android:paddingLeft=\"@dimen/_15sdp\">\r\n        </TextView>\r\n\r\n        <LinearLayout\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:orientation=\"vertical\"\r\n            android:layout_marginTop=\"@dimen/_10sdp\">\r\n            <LinearLayout\r\n                android:orientation=\"horizontal\"\r\n                android:paddingLeft=\"@dimen/_17sdp\"\r\n                android:layout_width=\"match_parent\"\r\n                android:layout_height=\"wrap_content\">\r\n                <ImageView\r\n                    android:layout_width=\"@dimen/_25sdp\"\r\n                    android:layout_height=\"@dimen/_25sdp\"\r\n                    android:src=\"@drawable/ic_baseline_person_24\"\r\n                    app:tint=\"#FA5F2F\" />\r\n                <TextView\r\n                    android:id=\"@+id/username_p\"\r\n                    android:textStyle=\"bold\"\r\n                    android:layout_gravity=\"center_vertical\"\r\n                    android:layout_width=\"wrap_content\"\r\n                    android:layout_height=\"wrap_content\"\r\n                    android:paddingLeft=\"@dimen/_8sdp\"\r\n                    android:text=\"@string/userName\"/>\r\n            </LinearLayout>\r\n\r\n            <LinearLayout\r\n                android:layout_marginTop=\"@dimen/_15sdp\"\r\n                android:orientation=\"horizontal\"\r\n                android:paddingLeft=\"@dimen/_17sdp\"\r\n                android:layout_width=\"match_parent\"\r\n                android:layout_height=\"wrap_content\">\r\n                <ImageView\r\n                    android:layout_width=\"@dimen/_25sdp\"\r\n                    android:layout_height=\"@dimen/_25sdp\"\r\n                    android:src=\"@drawable/ic_baseline_email_24\"\r\n                    app:tint=\"#FA5F2F\" />\r\n                <TextView\r\n                    android:id=\"@+id/e_mail\"\r\n                    android:inputType=\"textEmailAddress\"\r\n                    android:textStyle=\"bold\"\r\n                    android:layout_gravity=\"center_vertical\"\r\n                    android:layout_width=\"wrap_content\"\r\n                    android:layout_height=\"wrap_content\"\r\n                    android:paddingLeft=\"@dimen/_8sdp\"\r\n                    android:text=\"goodpoint@sci.asu.edu.eg\"/>\r\n            </LinearLayout>\r\n            <LinearLayout\r\n                android:layout_marginTop=\"@dimen/_15sdp\"\r\n                android:orientation=\"horizontal\"\r\n                android:paddingLeft=\"@dimen/_17sdp\"\r\n                android:layout_width=\"match_parent\"\r\n                android:layout_height=\"wrap_content\">\r\n                <ImageView\r\n                    android:layout_width=\"@dimen/_25sdp\"\r\n                    android:layout_height=\"@dimen/_25sdp\"\r\n                    android:src=\"@drawable/ic_baseline_phone_android_24\"\r\n                    app:tint=\"#FA5F2F\"/>\r\n                <TextView\r\n                    android:id=\"@+id/phone_p\"\r\n                    android:textStyle=\"bold\"\r\n                    android:layout_gravity=\"center_vertical\"\r\n                    android:layout_width=\"wrap_content\"\r\n                    android:layout_height=\"wrap_content\"\r\n                    android:paddingLeft=\"@dimen/_8sdp\"\r\n                    android:text=\"+01271177281\"/>\r\n            </LinearLayout>\r\n            <LinearLayout\r\n                android:layout_marginTop=\"@dimen/_15sdp\"\r\n                android:orientation=\"horizontal\"\r\n                android:paddingLeft=\"@dimen/_17sdp\"\r\n                android:layout_width=\"match_parent\"\r\n                android:layout_height=\"wrap_content\">\r\n                <ImageView\r\n                    android:layout_width=\"@dimen/_25sdp\"\r\n                    android:layout_height=\"@dimen/_25sdp\"\r\n                    android:src=\"@drawable/ic_baseline_room_24\"\r\n                    app:tint=\"#FA5F2F\"/>\r\n                <TextView\r\n                    android:id=\"@+id/city_p\"\r\n                    android:textStyle=\"bold\"\r\n                    android:layout_gravity=\"center_vertical\"\r\n                    android:layout_width=\"wrap_content\"\r\n                    android:layout_height=\"wrap_content\"\r\n                    android:paddingLeft=\"@dimen/_8sdp\"\r\n                    android:text=\"Cairo\"/>\r\n            </LinearLayout>\r\n\r\n            <LinearLayout\r\n                android:layout_marginTop=\"@dimen/_15sdp\"\r\n                android:orientation=\"horizontal\"\r\n                android:paddingLeft=\"@dimen/_17sdp\"\r\n                android:layout_width=\"match_parent\"\r\n                android:layout_height=\"wrap_content\">\r\n                <ImageView\r\n                    android:layout_width=\"@dimen/_25sdp\"\r\n                    android:layout_height=\"@dimen/_25sdp\"\r\n                    android:src=\"@drawable/ic_baseline_date_range_24\"\r\n                    app:tint=\"#FA5F2F\"/>\r\n                <TextView\r\n                    android:id=\"@+id/birth_date\"\r\n                    android:textStyle=\"bold\"\r\n                    android:layout_gravity=\"center_vertical\"\r\n                    android:layout_width=\"wrap_content\"\r\n                    android:layout_height=\"wrap_content\"\r\n                    android:paddingLeft=\"@dimen/_8sdp\"\r\n                    android:text=\"26/4/1999\"/>\r\n            </LinearLayout>\r\n        </LinearLayout>\r\n\r\n\r\n    </LinearLayout>\r\n</ScrollView>
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- app/src/main/res/layout/fragment_profile.xml	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ app/src/main/res/layout/fragment_profile.xml	(date 1621855100318)
@@ -22,8 +22,8 @@
 
         <de.hdodenhof.circleimageview.CircleImageView
             android:id="@+id/profile_pic"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
+            android:layout_width="@dimen/_100sdp"
+            android:layout_height="@dimen/_100sdp"
             android:background="@drawable/ic_prof_pic"
             android:layout_gravity="center" />
 
Index: app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/FoundObjectActivity.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+>package com.helloworld.goodpoint.ui.lostFoundObject;\r\n\r\nimport android.Manifest;\r\nimport android.annotation.SuppressLint;\r\nimport android.app.AlertDialog;\r\nimport android.app.DatePickerDialog;\r\nimport android.app.Fragment;\r\nimport android.app.FragmentManager;\r\nimport android.app.FragmentTransaction;\r\nimport android.content.Context;\r\nimport android.content.Intent;\r\nimport android.content.pm.PackageManager;\r\nimport android.database.Cursor;\r\nimport android.graphics.Bitmap;\r\nimport android.graphics.Color;\r\nimport android.graphics.drawable.ColorDrawable;\r\nimport android.location.Address;\r\nimport android.location.Geocoder;\r\nimport android.location.Location;\r\nimport android.location.LocationManager;\r\nimport android.net.ConnectivityManager;\r\nimport android.net.NetworkInfo;\r\nimport android.net.Uri;\r\nimport android.net.wifi.WifiManager;\r\nimport android.os.AsyncTask;\r\nimport android.os.Bundle;\r\nimport android.os.Looper;\r\nimport android.provider.MediaStore;\r\nimport android.provider.Settings;\r\nimport android.util.Log;\r\nimport android.util.SparseArray;\r\nimport android.view.MenuItem;\r\nimport android.view.View;\r\nimport android.widget.AutoCompleteTextView;\r\nimport android.widget.Button;\r\nimport android.widget.DatePicker;\r\nimport android.widget.EditText;\r\nimport android.widget.ProgressBar;\r\nimport android.widget.TextView;\r\nimport android.widget.Toast;\r\n\r\nimport androidx.annotation.NonNull;\r\nimport androidx.annotation.Nullable;\r\nimport androidx.appcompat.app.AppCompatActivity;\r\nimport androidx.appcompat.widget.PopupMenu;\r\nimport androidx.core.app.ActivityCompat;\r\nimport androidx.loader.content.CursorLoader;\r\n\r\nimport com.google.android.gms.common.GooglePlayServicesNotAvailableException;\r\nimport com.google.android.gms.common.GooglePlayServicesRepairableException;\r\nimport com.google.android.gms.location.FusedLocationProviderClient;\r\nimport com.google.android.gms.location.LocationCallback;\r\nimport com.google.android.gms.location.LocationRequest;\r\nimport com.google.android.gms.location.LocationResult;\r\nimport com.google.android.gms.location.LocationServices;\r\nimport com.google.android.gms.location.places.Place;\r\nimport com.google.android.gms.location.places.ui.PlacePicker;\r\nimport com.google.android.gms.tasks.OnCompleteListener;\r\nimport com.google.android.gms.tasks.Task;\r\nimport com.google.android.gms.vision.Frame;\r\nimport com.google.android.gms.vision.face.Face;\r\nimport com.google.android.gms.vision.face.FaceDetector;\r\nimport com.google.gson.JsonObject;\r\nimport com.helloworld.goodpoint.R;\r\nimport com.helloworld.goodpoint.pojo.FoundItem;\r\nimport com.helloworld.goodpoint.pojo.FoundPerson;\r\nimport com.helloworld.goodpoint.pojo.LostItem;\r\nimport com.helloworld.goodpoint.pojo.LostPerson;\r\nimport com.helloworld.goodpoint.pojo.User;\r\nimport com.helloworld.goodpoint.retrofit.ApiClient;\r\nimport com.helloworld.goodpoint.retrofit.ApiInterface;\r\nimport com.helloworld.goodpoint.ui.Alert;\r\nimport com.helloworld.goodpoint.ui.GlobalVar;\r\nimport com.helloworld.goodpoint.ui.PrefManager;\r\nimport com.helloworld.goodpoint.ui.prepareList;\r\nimport com.shashank.sony.fancytoastlib.FancyToast;\r\n\r\nimport org.json.JSONException;\r\nimport org.json.JSONObject;\r\n\r\nimport java.io.ByteArrayOutputStream;\r\nimport java.io.File;\r\nimport java.io.IOException;\r\nimport java.util.ArrayList;\r\nimport java.util.Calendar;\r\nimport java.util.List;\r\nimport java.util.Locale;\r\n\r\nimport okhttp3.MediaType;\r\nimport okhttp3.MultipartBody;\r\nimport okhttp3.RequestBody;\r\nimport retrofit2.Call;\r\nimport retrofit2.Callback;\r\nimport retrofit2.Response;\r\n\r\n\r\npublic class FoundObjectActivity extends AppCompatActivity implements View.OnClickListener, objectDataType {\r\n    private TextView DateFound;\r\n    private EditText Location;\r\n    private DatePickerDialog.OnDateSetListener DateSet;\r\n    private int year, month, Day;\r\n    private Button Person;\r\n    private Button Object;\r\n    private Button MatchFound;\r\n    private prepareList List;\r\n    private List<String> listColor;\r\n    private Fragment PersonF, ObjectF;\r\n    private String location, City;\r\n    private String ObjectColor, Serial, brand, textArea_information, Type;\r\n    private String PName;\r\n    private ProgressBar progressbar;\r\n    private WifiManager wifiManager;\r\n    private final static int PLACE_PICKER_REQUEST = 999;\r\n    private List<Bitmap> Person_Images;\r\n    double Latitude;\r\n    double Longitude;\r\n    private FaceDetector faceDetector;\r\n    FusedLocationProviderClient fusedLocationProviderClient;\r\n    private boolean flagPerson, flagObject;\r\n\r\n    @Override\r\n    protected void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.activity_found_object);\r\n        Calendar cal = Calendar.getInstance();//To get today's date\r\n        inti();\r\n        if (savedInstanceState != null) {\r\n            year = savedInstanceState.getInt(\"year\");\r\n            month = savedInstanceState.getInt(\"month\");\r\n            Day = savedInstanceState.getInt(\"Day\");\r\n            flagPerson = savedInstanceState.getBoolean(\"flagPerson\");\r\n            flagObject = savedInstanceState.getBoolean(\"flagObject\");\r\n            if (flagPerson == true) {\r\n                Person.setTextColor(0xFFF38E3A);\r\n                Object.setTextColor(Color.BLACK);\r\n            } else if (flagObject == true) {\r\n                Object.setTextColor(0xFFF38E3A);\r\n                Person.setTextColor(Color.BLACK);\r\n            }\r\n        } else {\r\n            year = cal.get(Calendar.YEAR);\r\n            month = cal.get(Calendar.MONTH);\r\n            Day = cal.get(Calendar.DAY_OF_MONTH);\r\n        }\r\n        //String todayDate = year + \"/\" + (month + 1) + \"/\" + Day;\r\n        String todayDate = year + \"-\" + (month + 1) + \"-\" + Day;\r\n        DateFound.setText(todayDate);\r\n\r\n        DateSet = new DatePickerDialog.OnDateSetListener() {\r\n            @Override\r\n            public void onDateSet(DatePicker datePicker, int y, int m, int d) {\r\n                m++;\r\n                if (y > year || (m - 1 > month && y >= year) || (d > Day && m - 1 >= month && y >= year)) {\r\n                    FancyToast.makeText(FoundObjectActivity.this, \"Invalid date\", FancyToast.LENGTH_LONG, FancyToast.ERROR, false).show();\r\n                    //String todayDate = year + \"/\" + (month + 1) + \"/\" + Day;\r\n                    String todayDate = year + \"-\" + (month + 1) + \"-\" + Day;\r\n                    DateFound.setText(todayDate);\r\n                } else {\r\n                    year = y;\r\n                    month = m - 1;\r\n                    Day = d;\r\n                    //String Date = y + \"/\" + m + \"/\" + d;\r\n                    String Date = y + \"-\" + m + \"-\" + d;\r\n                    DateFound.setText(Date);\r\n                }\r\n            }\r\n        };\r\n    }\r\n\r\n    @Override\r\n    protected void onStart() {\r\n        super.onStart();\r\n        fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(FoundObjectActivity.this);\r\n        if (ActivityCompat.checkSelfPermission(FoundObjectActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED\r\n                && ActivityCompat.checkSelfPermission(FoundObjectActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {\r\n            ActivityCompat.requestPermissions(FoundObjectActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 12);\r\n        } else {\r\n            getCurrentLocation();\r\n        }\r\n    }\r\n\r\n    @Override\r\n    public void onClick(View view) {\r\n        FragmentManager FM = getFragmentManager();\r\n        FragmentTransaction FT = FM.beginTransaction();\r\n        switch (view.getId()) {\r\n            case R.id.DateFound:\r\n                DatePickerDialog dialog = new DatePickerDialog(\r\n                        FoundObjectActivity.this,\r\n                        android.R.style.Theme_Holo_Light_Dialog_MinWidth,\r\n                        DateSet,\r\n                        year, month, Day\r\n                );\r\n                dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));\r\n                dialog.show();\r\n                break;\r\n            case R.id.FoundLocatin:\r\n                PopupMenu popupMenu = new PopupMenu(this, view);\r\n                popupMenu.getMenuInflater().inflate(R.menu.choose_location, popupMenu.getMenu());\r\n                popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {\r\n                    @Override\r\n                    public boolean onMenuItemClick(MenuItem item) {\r\n                        if (ActivityCompat.checkSelfPermission(FoundObjectActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED\r\n                                && ActivityCompat.checkSelfPermission(FoundObjectActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {\r\n                            ActivityCompat.requestPermissions(FoundObjectActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 12);\r\n                        } else {\r\n                            switch (item.getItemId()) {\r\n                                case R.id.TakeCurrLocation:\r\n                                    isInternetAvailable Available = new isInternetAvailable();\r\n                                    Available.execute();\r\n                                    CurrentLocation Locate = new CurrentLocation();\r\n                                    Locate.execute();\r\n                                    break;\r\n                                case R.id.DeteLocation:\r\n                                    boolean flag = false;\r\n                                    wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);\r\n                                    if (wifiManager.isWifiEnabled())\r\n                                        wifiManager.setWifiEnabled(false);\r\n                                    else {\r\n                                        flag = true;\r\n                                    }\r\n                                    PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();\r\n                                    try {\r\n                                        Intent intent = builder.build(FoundObjectActivity.this);\r\n                                        startActivityForResult(intent, PLACE_PICKER_REQUEST);\r\n                                        if (!flag) wifiManager.setWifiEnabled(true);\r\n                                    } catch (GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException e) {\r\n                                        e.printStackTrace();\r\n                                    } catch (Exception e) {\r\n                                        e.printStackTrace();\r\n                                    }\r\n                                    break;\r\n                            }\r\n                        }\r\n                        return true;\r\n                    }\r\n                });\r\n                popupMenu.show();\r\n                break;\r\n            case R.id.PersonFound:\r\n                flagPerson = true;\r\n                flagObject = false;\r\n                FT.replace(R.id.FragmentFoundID, PersonF, null);\r\n                Person.setTextColor(0xFFF38E3A);\r\n                Object.setTextColor(Color.BLACK);\r\n\r\n                FT.commit();\r\n                break;\r\n            case R.id.ObjectFound:\r\n                flagObject = true;\r\n                flagPerson = false;\r\n                FT.replace(R.id.FragmentFoundID, ObjectF, null);\r\n                Object.setTextColor(0xFFF38E3A);\r\n                Person.setTextColor(Color.BLACK);\r\n\r\n                FT.commit();\r\n                break;\r\n            case R.id.MatchFound:\r\n                GlobalVar.allFaces.clear();\r\n                if (!flagObject && !flagPerson) {\r\n                    FancyToast.makeText(this, \"Specify the type of the missing object\", FancyToast.LENGTH_LONG, FancyToast.ERROR, false).show();\r\n                } else if (flagObject && CheckMatchObject()) {\r\n                    FoundItems();\r\n                    FancyToast.makeText(this, \"The data has been saved successfully\", FancyToast.LENGTH_LONG, FancyToast.SUCCESS, false).show();\r\n                    finish();\r\n                } else if (flagPerson && CheckMatchPerson()) {\r\n                    faceDetector = new FaceDetector.Builder(this)\r\n                            .setTrackingEnabled(false)\r\n                            .setLandmarkType(FaceDetector.ALL_LANDMARKS)\r\n                            .setMode(FaceDetector.FAST_MODE).build();\r\n                    if (!faceDetector.isOperational()) {\r\n                        Toast.makeText(this, \"Face Detection can't be setup\", Toast.LENGTH_SHORT).show();\r\n                    }\r\n                    checkFaces N = new checkFaces(this);\r\n                    N.execute();\r\n                }\r\n                break;\r\n        }\r\n    }\r\n\r\n    private boolean CheckMatchPerson() {\r\n        EditText PersonName = PersonF.getView().findViewById(R.id.PersonName);\r\n        PName = PersonName.getText().toString();\r\n        location = Location.getText().toString();\r\n        if (location.isEmpty()) {\r\n            FancyToast.makeText(this, \"Specify where you found this object\", FancyToast.LENGTH_LONG, FancyToast.ERROR, false).show();\r\n            return false;\r\n        } else if (Person_Images.size() == 0) {\r\n            FancyToast.makeText(this, \"You must put at least one picture!\", FancyToast.LENGTH_LONG, FancyToast.ERROR, false).show();\r\n            return false;\r\n        }\r\n        return true;\r\n    }\r\n\r\n    class checkFaces extends AsyncTask<Void, Void, Void> {\r\n        AlertDialog.Builder builder;\r\n        AlertDialog dialog;\r\n        Context context;\r\n\r\n        private checkFaces(Context context) {\r\n            this.context = context.getApplicationContext();\r\n            builder = new AlertDialog.Builder(FoundObjectActivity.this);\r\n        }\r\n\r\n        @Override\r\n        protected void onPreExecute() {\r\n            super.onPreExecute();\r\n            builder.setCancelable(false);\r\n            View view = getLayoutInflater().inflate(R.layout.progress_bar_alert, null);\r\n            builder.setView(view);\r\n            dialog = builder.create();\r\n            dialog.show();\r\n        }\r\n\r\n        @Override\r\n        protected void onPostExecute(Void a) {\r\n            super.onPostExecute(a);\r\n            Log.e(\"img\", \"onPostExecute: \" + GlobalVar.ImgThatHaveMoreThanOneFace.size() + \"  \" + GlobalVar.FinialFacesThatWillGoToDataBase.size());\r\n            if (GlobalVar.allFaces.size() > 0) {\r\n                startActivity(new Intent(FoundObjectActivity.this, Alert.class));\r\n                finish();\r\n\r\n            } else {\r\n                FancyToast.makeText(FoundObjectActivity.this, \"The data has been saved successfully\", FancyToast.LENGTH_LONG, FancyToast.SUCCESS, false).show();\r\n                finish();\r\n            }\r\n            dialog.dismiss();\r\n            FoundPerson();\r\n\r\n        }\r\n\r\n        @Override\r\n        protected Void doInBackground(Void... voids) {\r\n            GlobalVar.ImgThatHaveMoreThanOneFace.clear();\r\n            GlobalVar.FinialFacesThatWillGoToDataBase.clear();\r\n            GlobalVar.allFaces.clear();\r\n            boolean flag = false;\r\n            for (int i = 0; i < Person_Images.size(); i++) {\r\n                Bitmap My = Person_Images.get(i);\r\n                Bitmap faceBitmap;\r\n                List<Bitmap> faces = new ArrayList<>();//In one Img;\r\n                Frame frame = new Frame.Builder().setBitmap(My).build();\r\n                SparseArray<Face> sparseArray = faceDetector.detect(frame);\r\n                for (int j = 0; j < sparseArray.size(); j++) {\r\n                    flag = false;\r\n                    Face face = sparseArray.valueAt(j);\r\n                    if (((int) face.getPosition().y + (int) face.getHeight()) > My.getHeight()) {\r\n                        int H = My.getHeight() - (int) face.getPosition().y;\r\n                        faceBitmap = Bitmap.createBitmap(My, (int) face.getPosition().x, (int) face.getPosition().y, (int) face.getWidth(), H);\r\n                    } else if (((int) face.getPosition().x + (int) face.getWidth()) > My.getWidth()) {\r\n                        int W = My.getWidth() - (int) face.getPosition().x;\r\n                        faceBitmap = Bitmap.createBitmap(My, (int) face.getPosition().x, (int) face.getPosition().y, W, (int) face.getHeight());\r\n                    } else if ((((int) face.getPosition().x + (int) face.getWidth()) > My.getWidth()) && (((int) face.getPosition().y + (int) face.getHeight()) > My.getHeight())) {\r\n                        int H = My.getHeight() - (int) face.getPosition().y;\r\n                        int W = My.getWidth() - (int) face.getPosition().x;\r\n                        faceBitmap = Bitmap.createBitmap(My, (int) face.getPosition().x, (int) face.getPosition().y, W, H);\r\n                    } else {\r\n                        faceBitmap = Bitmap.createBitmap(My, (int) face.getPosition().x, (int) face.getPosition().y, (int) face.getWidth(), (int) face.getHeight());\r\n\r\n                    }\r\n                    if (sparseArray.size() == 1) {\r\n                        GlobalVar.FinialFacesThatWillGoToDataBase.add(faceBitmap);\r\n                        flag = true;\r\n                    } else {\r\n                        faces.add(faceBitmap);\r\n                    }\r\n                }\r\n                if (!flag) {\r\n                    GlobalVar.ImgThatHaveMoreThanOneFace.add(My);\r\n                    GlobalVar.allFaces.add(faces);\r\n                }\r\n\r\n            }\r\n            return null;\r\n        }\r\n    }\r\n\r\n    private boolean CheckMatchObject() {\r\n        location = Location.getText().toString();\r\n        AutoCompleteTextView V = ObjectF.getView().findViewById(R.id.ColorOfObject);\r\n        EditText serialObject = ObjectF.getView().findViewById(R.id.Serial);\r\n        EditText brandObject = ObjectF.getView().findViewById(R.id.brand);\r\n        EditText textArea_informationObject = ObjectF.getView().findViewById(R.id.textArea_information);\r\n        EditText TypeObject;\r\n\r\n        ObjectColor = V.getText().toString();\r\n        Serial = serialObject.getText().toString();\r\n        brand = brandObject.getText().toString();\r\n        textArea_information = textArea_informationObject.getText().toString();\r\n        if (location.isEmpty()) {\r\n            FancyToast.makeText(this, \"Specify where you found this object\", FancyToast.LENGTH_LONG, FancyToast.ERROR, false).show();\r\n            return false;\r\n        } else if (Type.equals(\"Type\")) {\r\n            FancyToast.makeText(this, \"You must Choose the Type!\", FancyToast.LENGTH_LONG, FancyToast.ERROR, false).show();\r\n            return false;\r\n        } else if (Type.equals(\"Others\")) {\r\n            TypeObject = ObjectF.getView().findViewById(R.id.Other);\r\n            if (TypeObject.getText().toString().isEmpty()) {\r\n                TypeObject.setError(\"Field can't be empty\");\r\n                return false;\r\n            } else {\r\n                Type = TypeObject.getText().toString();\r\n            }\r\n        } else if (brand.isEmpty()) {\r\n            brandObject.setError(\"Field can't be empty\");\r\n            return false;\r\n        } else if (ObjectColor.isEmpty()) {\r\n            V.setError(\"Field can't be empty\");\r\n            return false;\r\n        } else if (!listColor.contains(ObjectColor.trim())) {\r\n            V.setError(\"Color isn't known!\");\r\n            return false;\r\n        } else if (textArea_information.isEmpty()) {\r\n            textArea_informationObject.setError(\"Field can't be empty\");\r\n            return false;\r\n        }\r\n        return true;\r\n    }\r\n\r\n    @Override\r\n    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {\r\n        super.onActivityResult(requestCode, resultCode, data);\r\n        if (requestCode == PLACE_PICKER_REQUEST && resultCode == RESULT_OK) {\r\n            Place place = PlacePicker.getPlace(data, this);\r\n            StringBuilder stringBuilder = new StringBuilder();\r\n            Latitude = place.getLatLng().latitude;\r\n            Longitude = place.getLatLng().longitude;\r\n            isInternetAvailable Available = new isInternetAvailable();\r\n            Available.execute();\r\n            CurrentLocation Locate = new CurrentLocation();\r\n            Locate.execute();\r\n        }\r\n    }\r\n\r\n    @Override\r\n    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {\r\n        if (requestCode == 12 && (grantResults.length > 0) &&\r\n                grantResults[0] == PackageManager.PERMISSION_GRANTED) {\r\n            getCurrentLocation();\r\n        } else if (requestCode == 12 && (grantResults.length > 0) &&\r\n                grantResults[0] == PackageManager.PERMISSION_DENIED) {\r\n\r\n            FancyToast.makeText(this, \"Permission denied\", FancyToast.LENGTH_LONG, FancyToast.ERROR, false).show();\r\n        } else if (requestCode == 11 && (grantResults.length > 0) &&\r\n                grantResults[0] == PackageManager.PERMISSION_DENIED) {\r\n            FancyToast.makeText(this, \"Permission denied\", FancyToast.LENGTH_LONG, FancyToast.ERROR, false).show();\r\n        }\r\n\r\n    }\r\n\r\n    @SuppressLint(\"MissingPermission\")\r\n    private void getCurrentLocation() {\r\n        LocationManager locationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE);\r\n\r\n        if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)\r\n                || locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)\r\n        ) {\r\n            fusedLocationProviderClient.getLastLocation().addOnCompleteListener(new OnCompleteListener<Location>() {\r\n                @SuppressLint(\"MissingPermission\")\r\n                @Override\r\n                public void onComplete(@NonNull Task<Location> task) {\r\n                    Location location = task.getResult();\r\n                    if (location != null) {\r\n                        Longitude = location.getLongitude();\r\n                        Latitude = location.getLatitude();\r\n                    } else {\r\n                        @SuppressLint(\"RestrictedApi\") LocationRequest locationRequest = new LocationRequest()\r\n                                .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)\r\n                                .setInterval(10000)\r\n                                .setFastestInterval(1000)\r\n                                .setNumUpdates(1);\r\n                        LocationCallback locationCallback = new LocationCallback() {\r\n                            @Override\r\n                            public void onLocationResult(LocationResult locationResult) {\r\n                                Location location1 = locationResult.getLastLocation();\r\n                                Longitude = location1.getLongitude();\r\n                                Latitude = location1.getLatitude();\r\n                            }\r\n                        };\r\n                        fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, Looper.myLooper());\r\n\r\n                    }\r\n                }\r\n            });\r\n        } else {\r\n            //when location servies is not enabled\r\n            //open location setting\r\n            startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));\r\n        }\r\n    }\r\n\r\n    class CurrentLocation extends AsyncTask<Void, Void, String> {\r\n\r\n        @Override\r\n        protected void onPreExecute() {\r\n            super.onPreExecute();\r\n            progressbar.setVisibility(View.VISIBLE);\r\n        }\r\n\r\n        @Override\r\n        protected void onPostExecute(String Locate) {\r\n            super.onPostExecute(Locate);\r\n            if (Locate.isEmpty())\r\n                FancyToast.makeText(FoundObjectActivity.this, \"An error has occurred , please try again\", FancyToast.LENGTH_LONG, FancyToast.WARNING, false).show();\r\n            Location.setText(Locate);\r\n            progressbar.setVisibility(View.GONE);\r\n        }\r\n\r\n        @Override\r\n        protected String doInBackground(Void... voids) {\r\n            Geocoder geocoder = new Geocoder(FoundObjectActivity.this, new Locale(\"en\"));\r\n            String Locate = \"\";\r\n            try {\r\n                List<Address> addresses = geocoder.getFromLocation(Latitude, Longitude, 1);\r\n                String Country = addresses.get(0).getCountryName();\r\n                String CityG = addresses.get(0).getAdminArea();\r\n                City = CityG.substring(0, CityG.lastIndexOf(' '));\r\n                String area = addresses.get(0).getLocality();\r\n                Locate = area + \",\" + CityG + \",\" + Country + \".\";\r\n            } catch (IOException e) {\r\n                e.printStackTrace();\r\n            }\r\n            return Locate;\r\n        }\r\n\r\n    }\r\n\r\n    public boolean isNetworkAvailable(Context context) {\r\n        ConnectivityManager cm = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);\r\n        NetworkInfo nInfo = cm.getActiveNetworkInfo();\r\n        boolean connected = nInfo != null && nInfo.isAvailable() && nInfo.isConnected();\r\n        return connected;\r\n    }\r\n\r\n    class isInternetAvailable extends AsyncTask<Void, Void, Boolean> {\r\n\r\n        @Override\r\n        protected void onPreExecute() {\r\n            super.onPreExecute();\r\n            progressbar.setVisibility(View.VISIBLE);\r\n        }\r\n\r\n        @Override\r\n        protected void onPostExecute(Boolean aBoolean) {\r\n            super.onPostExecute(aBoolean);\r\n            progressbar.setVisibility(View.GONE);\r\n            if (!aBoolean)\r\n                FancyToast.makeText(FoundObjectActivity.this, \"No Internet Connection\", FancyToast.LENGTH_LONG, FancyToast.WARNING, false).show();\r\n        }\r\n\r\n        @Override\r\n        protected Boolean doInBackground(Void... voids) {\r\n            Boolean flag;\r\n            try {\r\n                String command = \"ping -c 1 google.com\";\r\n                flag = (Runtime.getRuntime().exec(command).waitFor() == 0);\r\n            } catch (Exception e) {\r\n                flag = false;\r\n            }\r\n            return flag;\r\n        }\r\n    }\r\n\r\n    protected void inti() {\r\n\r\n        DateFound = findViewById(R.id.DateFound);\r\n        progressbar = findViewById(R.id.ProgressBar);\r\n        Button foundLocatin = findViewById(R.id.FoundLocatin);\r\n        Person = findViewById(R.id.PersonFound);\r\n        Object = findViewById(R.id.ObjectFound);\r\n        MatchFound = findViewById(R.id.MatchFound);\r\n        Location = findViewById(R.id.Location);\r\n        DateFound.setOnClickListener(this);\r\n        foundLocatin.setOnClickListener(this);\r\n        Person.setOnClickListener(this);\r\n        Object.setOnClickListener(this);\r\n        MatchFound.setOnClickListener(this);\r\n        PersonF = new PersonFragment();\r\n        ObjectF = new ObjectFragment();\r\n        List = new prepareList();\r\n        listColor = List.prepareListColor(this);\r\n\r\n    }\r\n\r\n    @Override\r\n    public void getType(String T) {\r\n        Type = T;\r\n    }\r\n\r\n    @Override\r\n    public void getImageCheck(Boolean check) {\r\n    }\r\n\r\n    @Override\r\n    public void getBitmap_Image(Bitmap Bitmap_Image) {\r\n    }\r\n\r\n    @Override\r\n    public void getBitmap_ImagePersonImages(List<Bitmap> PImages) {\r\n        Person_Images = PImages;\r\n        Log.e(\"img\", \"getBitmap_ImagePersonImages: Hi \" + Person_Images.size());\r\n    }\r\n\r\n    @Override\r\n    public void onSaveInstanceState(@NonNull Bundle outState) {\r\n        super.onSaveInstanceState(outState);\r\n\r\n        outState.putInt(\"year\", year);\r\n        outState.putInt(\"month\", month);\r\n        outState.putInt(\"Day\", Day);\r\n        outState.putBoolean(\"flagPerson\", flagPerson);\r\n        outState.putBoolean(\"flagObject\", flagObject);\r\n    }\r\n\r\n/*\r\n    public Uri getImageUri(Bitmap bitmap_Image) {\r\n        ByteArrayOutputStream bytes = new ByteArrayOutputStream();\r\n        bitmap_Image.compress(Bitmap.CompressFormat.JPEG, 100, bytes);\r\n        String path = MediaStore.Images.Media.insertImage(getContentResolver(), bitmap_Image, \"LostItem\", null);\r\n        return Uri.parse(path);\r\n    }\r\n\r\n    private String getRealPathFromURI(Uri imageUri) {\r\n        String[] proj = {MediaStore.Images.Media.DATA};\r\n        CursorLoader loader = new CursorLoader(this, imageUri, proj, null, null, null);\r\n        Cursor cursor = loader.loadInBackground();\r\n        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);\r\n        cursor.moveToFirst();\r\n        String result = cursor.getString(column_index);\r\n        cursor.close();\r\n        return result;\r\n    }\r\n*/\r\n\r\n    public void FoundItems() {\r\n\r\n        String Datee = DateFound.getText().toString().trim();\r\n        ApiInterface apiInterface = ApiClient.getApiClient(new PrefManager(getApplicationContext()).getNGROKLink()).create(ApiInterface.class);\r\n\r\n        Call<JsonObject> call = apiInterface.storeFoundObj(User.getUser().getId(), Datee, City, Longitude , Latitude);\r\n        call.enqueue(new Callback<JsonObject>() {\r\n            @Override\r\n            public void onResponse(Call<JsonObject> call, Response<JsonObject> response) {\r\n                if (response.isSuccessful()) {\r\n\r\n                    try {\r\n                        JSONObject jsonObject = new JSONObject(response.body().toString());\r\n                        String id = jsonObject.getString(\"id\");\r\n                        Toast.makeText(FoundObjectActivity.this, \"Object is posted.\", Toast.LENGTH_SHORT).show();\r\n\r\n\r\n                        Call<FoundItem> call2 = apiInterface.storeFoundItem(id, Type, Serial, brand, ObjectColor, textArea_information);\r\n                        call2.enqueue(new Callback<FoundItem>() {\r\n                            @Override\r\n                            public void onResponse(Call<FoundItem> call, Response<FoundItem> response) {\r\n                                if (response.isSuccessful()) {\r\n                                    Toast.makeText(FoundObjectActivity.this, \"Item is posted.\", Toast.LENGTH_SHORT).show();\r\n                                } else\r\n                                    Toast.makeText(FoundObjectActivity.this, \"The item is not posted.\", Toast.LENGTH_SHORT).show();\r\n                            }\r\n\r\n                            @Override\r\n                            public void onFailure(Call<FoundItem> call, Throwable t) {\r\n                                Toast.makeText(FoundObjectActivity.this, t.getMessage(), Toast.LENGTH_LONG).show();\r\n                            }\r\n                        });\r\n\r\n\r\n                    } catch (JSONException e) {\r\n                        e.printStackTrace();\r\n                    }\r\n\r\n                } else\r\n                        Toast.makeText(FoundObjectActivity.this, \"Objec is not posted.\", Toast.LENGTH_SHORT).show();\r\n            }\r\n\r\n            @Override\r\n            public void onFailure(Call<JsonObject> call, Throwable t) {\r\n                Toast.makeText(FoundObjectActivity.this, t.getMessage(), Toast.LENGTH_LONG).show();\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    public Uri getImageUri(Bitmap bitmap_Image) {\r\n        ByteArrayOutputStream bytes = new ByteArrayOutputStream();\r\n        bitmap_Image.compress(Bitmap.CompressFormat.JPEG, 100, bytes);\r\n        String path = MediaStore.Images.Media.insertImage(getContentResolver(), bitmap_Image, \"LostItem\", null);\r\n        return Uri.parse(path);\r\n    }\r\n\r\n    private String getRealPathFromURI(Uri imageUri) {\r\n        String[] proj = {MediaStore.Images.Media.DATA};\r\n        CursorLoader loader = new CursorLoader(this, imageUri, proj, null, null, null);\r\n        Cursor cursor = loader.loadInBackground();\r\n        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);\r\n        cursor.moveToFirst();\r\n        String result = cursor.getString(column_index);\r\n        cursor.close();\r\n        return result;\r\n    }\r\n\r\n    public void FoundPerson()\r\n    {\r\n\r\n        String Datee = DateFound.getText().toString().trim();\r\n        ApiInterface apiInterface = ApiClient.getApiClient(new PrefManager(getApplicationContext()).getNGROKLink()).create(ApiInterface.class);\r\n\r\n        Uri imageURI = getImageUri(Person_Images.get(0));\r\n        File file = new File(getRealPathFromURI(imageURI));\r\n        RequestBody requestBody = RequestBody.create(MediaType.parse(\"multipart/form-data\"), file);\r\n        MultipartBody.Part Pimage = MultipartBody.Part.createFormData(\"image\", file.getName(), requestBody);\r\n\r\n        Call<JsonObject> call = apiInterface.storeFoundPerson(User.getUser().getId(), Datee, City, Longitude , Latitude, PName, Pimage);\r\n        call.enqueue(new Callback<JsonObject>() {\r\n            @Override\r\n            public void onResponse(Call<JsonObject> call, Response<JsonObject> response) {\r\n                if(response.isSuccessful()) {\r\n                    Toast.makeText(FoundObjectActivity.this, \"The object posted.\", Toast.LENGTH_SHORT).show();\r\n                }else\r\n                    Toast.makeText(FoundObjectActivity.this, \"The object is not posted.\", Toast.LENGTH_SHORT).show();\r\n\r\n            }\r\n\r\n            @Override\r\n            public void onFailure(Call<JsonObject> call, Throwable t) {\r\n                Toast.makeText(FoundObjectActivity.this, t.getMessage(), Toast.LENGTH_LONG).show();\r\n            }\r\n        });\r\n\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n}
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/FoundObjectActivity.java	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/FoundObjectActivity.java	(date 1621852290573)
@@ -514,7 +514,11 @@
                 List<Address> addresses = geocoder.getFromLocation(Latitude, Longitude, 1);
                 String Country = addresses.get(0).getCountryName();
                 String CityG = addresses.get(0).getAdminArea();
-                City = CityG.substring(0, CityG.lastIndexOf(' '));
+                int index = CityG.lastIndexOf(' ');
+                if(index == -1)
+                    City = CityG;
+                else
+                    City = CityG.substring(0, index);
                 String area = addresses.get(0).getLocality();
                 Locate = area + "," + CityG + "," + Country + ".";
             } catch (IOException e) {
Index: app/src/main/java/com/helloworld/goodpoint/retrofit/ApiInterface.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+>package com.helloworld.goodpoint.retrofit;\r\n\r\nimport com.google.gson.JsonObject;\r\nimport com.helloworld.goodpoint.pojo.FoundItem;\r\nimport com.helloworld.goodpoint.pojo.FoundPerson;\r\nimport com.helloworld.goodpoint.pojo.LostItem;\r\nimport com.helloworld.goodpoint.pojo.LostPerson;\r\nimport com.helloworld.goodpoint.pojo.ObjectLocation;\r\nimport com.helloworld.goodpoint.pojo.RegUser;\r\nimport com.helloworld.goodpoint.pojo.Token;\r\nimport com.helloworld.goodpoint.pojo.User;\r\nimport com.helloworld.goodpoint.pojo.UserMap;\r\n\r\nimport org.json.JSONObject;\r\n\r\nimport java.util.List;\r\n\r\nimport okhttp3.MultipartBody;\r\nimport okhttp3.RequestBody;\r\nimport okhttp3.ResponseBody;\r\nimport retrofit2.Call;\r\nimport retrofit2.http.Body;\r\nimport retrofit2.http.Field;\r\nimport retrofit2.http.FormUrlEncoded;\r\nimport retrofit2.http.GET;\r\nimport retrofit2.http.Header;\r\nimport retrofit2.http.Headers;\r\nimport retrofit2.http.Multipart;\r\nimport retrofit2.http.POST;\r\nimport retrofit2.http.Part;\r\nimport retrofit2.http.Path;\r\nimport retrofit2.http.Query;\r\n\r\npublic interface ApiInterface {\r\n\r\n    @FormUrlEncoded\r\n    @POST(\"auth/signup/\")\r\n    Call<RegUser> storePost(@Field(\"username\") String emailInput\r\n                            , @Field(\"password\") String passwordInput, @Field(\"first_name\") String usernameInput\r\n                            , @Field(\"phone\") String pInput, @Field(\"city\") String cityInput\r\n                            , @Field(\"birthdate\") String Datee);\r\n\r\n\r\n    @Multipart\r\n    @POST(\"auth/signup/\")\r\n    Call<RegUser> storePost(@Part(\"username\") String emailInput\r\n                            , @Part(\"password\") String passwordInput, @Part(\"first_name\") String usernameInput\r\n                            , @Part(\"phone\") String pInput, @Part(\"city\") String cityInput\r\n                            , @Part(\"birthdate\") String Datee, @Part MultipartBody.Part profile_pic);\r\n\r\n\r\n    @FormUrlEncoded\r\n    @POST(\"api/token/\")\r\n    Call<Token> getToken(@Field(\"username\") String emailInput, @Field(\"password\") String passwordInput);\r\n\r\n    @FormUrlEncoded\r\n    @POST(\"api/token/refresh/\")\r\n    Call<Token> refresh(@Field(\"refresh\") String refresh);\r\n\r\n\r\n    @POST(\"auth/signin/\")\r\n    Call<JsonObject> getData(@Header(\"Authorization\") String token);\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n\r\n    @FormUrlEncoded\r\n    @POST(\"losts/lostobject/\")\r\n    Call<JsonObject> storeLostObj(@Field(\"user_id\") String id, @Field(\"date\") String Datee, @Field(\"city\") String cityInput);\r\n\r\n    @FormUrlEncoded\r\n    @POST(\"losts/lostitem/\")\r\n    Call<LostItem> storeLostItem(@Field(\"id\") String obj_id, @Field(\"type\") String Type, @Field(\"serial_number\") String Serial\r\n            , @Field(\"brand\") String brand, @Field(\"color\") String ObjectColor\r\n            , @Field(\"description\") String textArea_information);\r\n\r\n    @Multipart\r\n    @POST(\"losts/lostitem/\")\r\n    Call<LostItem> storeLostItem(@Part(\"id\") String obj_id, @Part(\"type\") String Type, @Part(\"serial_number\") String Serial\r\n                             , @Part(\"brand\") String brand, @Part(\"color\") String ObjectColor\r\n                             , @Part(\"description\") String textArea_information, @Part MultipartBody.Part image);\r\n\r\n    @Multipart\r\n    @POST(\"losts/lostperson/\")\r\n    Call<JsonObject> storeLostPerson(@Part(\"date\") String Date, @Part(\"city\") String city, @Part(\"user_id\") String user_id\r\n                                   , @Part(\"name\") String name, @Part MultipartBody.Part images);\r\n\r\n\r\n    @Multipart\r\n    @POST(\"losts/lostperson_image/\")\r\n    Call<LostPerson> storeLostPersonImage(@Part(\"id\") String person_id/*, @Part MultipartBody.Part image*/);\r\n    //----------------------------------------------------------------------------------------------\r\n\r\n    @FormUrlEncoded\r\n    @POST(\"losts/foundobject/\")\r\n    Call<JsonObject> storeFoundObj(@Field(\"user_id\") String id, @Field(\"date\") String Datee, @Field(\"city\") String cityInput\r\n                                 , @Field(\"longitude\") double longitude, @Field(\"latitude\") double latitude);\r\n\r\n    @FormUrlEncoded\r\n    @POST(\"losts/founditem/\")\r\n    Call<FoundItem> storeFoundItem(@Field(\"id\") String obj_id, @Field(\"type\") String Type, @Field(\"serial_number\") String Serial\r\n            , @Field(\"brand\") String brand, @Field(\"color\") String ObjectColor\r\n            , @Field(\"description\") String textArea_information);\r\n\r\n    @FormUrlEncoded\r\n    @POST(\"losts/foundperson/\")\r\n    Call<JsonObject> storeFoundPerson(@Field(\"user_id\") String id, @Field(\"date\") String Datee, @Field(\"city\") String cityInput\r\n            , @Field(\"longitude\") double longitude, @Field(\"latitude\") double latitude, @Field(\"name\") String name\r\n            , @Part MultipartBody.Part image);\r\n\r\n    @Multipart\r\n    @POST(\"losts/foundperson_image/\")\r\n    Call<FoundPerson> storeFoundPersonImage(@Part(\"id\") String person_id/*, @Part MultipartBody.Part image*/);\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n\r\n    @GET(\"losts/map/\")\r\n    Call<List<ObjectLocation>> getPoint();\r\n\r\n    @GET(\"losts/founder/{id}\")\r\n    Call<UserMap> getUserMap(@Path(\"id\") int id);\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- app/src/main/java/com/helloworld/goodpoint/retrofit/ApiInterface.java	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ app/src/main/java/com/helloworld/goodpoint/retrofit/ApiInterface.java	(date 1621853230298)
@@ -101,10 +101,10 @@
             , @Field("brand") String brand, @Field("color") String ObjectColor
             , @Field("description") String textArea_information);
 
-    @FormUrlEncoded
+    @Multipart
     @POST("losts/foundperson/")
-    Call<JsonObject> storeFoundPerson(@Field("user_id") String id, @Field("date") String Datee, @Field("city") String cityInput
-            , @Field("longitude") double longitude, @Field("latitude") double latitude, @Field("name") String name
+    Call<JsonObject> storeFoundPerson(@Part("user_id") String id, @Part("date") String Datee, @Part("city") String cityInput
+            , @Part("longitude") Double longitude, @Part("latitude") Double latitude, @Part("name") String name
             , @Part MultipartBody.Part image);
 
     @Multipart
Index: app/src/main/java/com/helloworld/goodpoint/ui/HomeActivity.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+>package com.helloworld.goodpoint.ui;\r\nimport androidx.annotation.NonNull;\r\nimport androidx.appcompat.app.ActionBarDrawerToggle;\r\nimport androidx.appcompat.app.AlertDialog;\r\nimport androidx.appcompat.app.AppCompatActivity;\r\nimport androidx.appcompat.widget.Toolbar;\r\nimport androidx.core.view.GravityCompat;\r\nimport androidx.drawerlayout.widget.DrawerLayout;\r\nimport androidx.fragment.app.Fragment;\r\nimport android.content.DialogInterface;\r\nimport android.content.Intent;\r\nimport android.graphics.Bitmap;\r\nimport android.graphics.BitmapFactory;\r\nimport android.graphics.Color;\r\nimport android.graphics.PorterDuff;\r\nimport android.os.AsyncTask;\r\nimport android.os.Bundle;\r\nimport android.util.Log;\r\nimport android.view.LayoutInflater;\r\nimport android.view.Menu;\r\nimport android.view.MenuItem;\r\nimport android.view.View;\r\nimport android.widget.EditText;\r\nimport android.widget.LinearLayout;\r\nimport android.widget.TextView;\r\nimport android.widget.Toast;\r\n\r\nimport com.google.android.material.bottomnavigation.BottomNavigationView;\r\nimport com.google.android.material.bottomsheet.BottomSheetDialog;\r\nimport com.google.android.material.floatingactionbutton.FloatingActionButton;\r\nimport com.google.android.material.navigation.NavigationView;\r\nimport com.helloworld.goodpoint.R;\r\nimport com.helloworld.goodpoint.pojo.RegUser;\r\nimport com.helloworld.goodpoint.pojo.User;\r\nimport com.helloworld.goodpoint.ui.lostFoundObject.FoundObjectActivity;\r\nimport com.helloworld.goodpoint.ui.lostFoundObject.LostObjectDetailsActivity;\r\n\r\nimport java.io.IOException;\r\nimport java.io.InputStream;\r\nimport java.net.HttpURLConnection;\r\nimport java.net.MalformedURLException;\r\nimport java.net.URL;\r\n\r\nimport de.hdodenhof.circleimageview.CircleImageView;\r\n\r\npublic class HomeActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {\r\n    DrawerLayout drawerLayout;\r\n    NavigationView navigationView;\r\n    Toolbar toolbar;\r\n    AlertDialog.Builder dialog;\r\n    BottomNavigationView bottomNavigationView;\r\n    FloatingActionButton fab;\r\n    Fragment fhome, fmatch, fprofile;\r\n    TextView namenavigator;\r\n    TextView mailnavigator;\r\n    CircleImageView imgnavigator;\r\n\r\n    @Override\r\n    protected void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.activity_home);\r\n\r\n        init();\r\n        setToolBarAndDrawer();\r\n        setBottomNavigator();\r\n\r\n        if(savedInstanceState == null) {\r\n            //To make first fragment is home when opening the app\r\n            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fhome).commit();\r\n        }\r\n\r\n    }\r\n\r\n    private void setBottomNavigator() {\r\n        bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottomNavigationView);\r\n        fab = (FloatingActionButton) findViewById(R.id.fab);\r\n\r\n        //To Disable item under Fab\r\n        Menu menuNav=bottomNavigationView.getMenu();\r\n        MenuItem nav_item2 = menuNav.findItem(R.id.placeholder);\r\n        nav_item2.setEnabled(false);\r\n\r\n        bottomNavigationView.setBackgroundColor(0); //To hide the color of nav view\r\n        bottomNavigationView.setOnNavigationItemSelectedListener(navListner);\r\n    }\r\n\r\n    private void setToolBarAndDrawer() {\r\n        setSupportActionBar(toolbar);\r\n        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this,drawerLayout,toolbar,R.string.nav_drawer_open,R.string.nav_drawer_close);\r\n        toggle.getDrawerArrowDrawable().setColor(getResources().getColor(android.R.color.white));\r\n        drawerLayout.addDrawerListener(toggle);\r\n        toggle.syncState();\r\n        navigationView.setNavigationItemSelectedListener(this);\r\n    }\r\n\r\n    private void init() {\r\n        drawerLayout = findViewById(R.id.drawer_layout);\r\n        toolbar = findViewById(R.id.toolbar);\r\n        navigationView = findViewById(R.id.nv);\r\n        navigationView.bringToFront();\r\n        fhome = new HomeFragment();\r\n        fmatch = new MatchFragment();\r\n        fprofile = new ProfileFragment();\r\n        View view = navigationView.getHeaderView(0);\r\n        namenavigator = (TextView) view.findViewById(R.id.namenav);\r\n        mailnavigator = (TextView) view.findViewById(R.id.mailnav);\r\n        imgnavigator = view.findViewById(R.id.circuler_profile_img);\r\n        namenavigator.setText(User.getUser().getUsername());\r\n        mailnavigator.setText(User.getUser().getEmail());\r\n        if(!User.getUser().getProfile_pic().isEmpty() && User.getUser().getProfile_bitmap() == null) {\r\n            DownloadProfilePic download = new DownloadProfilePic();\r\n            download.execute(User.getUser().getProfile_pic());\r\n        }\r\n    }\r\n\r\n    @Override\r\n    public boolean onCreateOptionsMenu(Menu menu) {\r\n        getMenuInflater().inflate(R.menu.home_menu, menu);\r\n        menu.getItem(0).getIcon().mutate().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP);\r\n        return true;\r\n    }\r\n\r\n    @Override\r\n    public boolean onOptionsItemSelected(@NonNull MenuItem item) {\r\n        if(item.getItemId() == R.id.notification)\r\n            startActivity(new Intent(this,NotificationActivity.class));\r\n        return super.onOptionsItemSelected(item);\r\n    }\r\n\r\n    @Override\r\n    public boolean onNavigationItemSelected(@NonNull MenuItem item) {\r\n        switch (item.getItemId()){\r\n            case R.id.drawer_share:\r\n\r\n                break;\r\n            case R.id.drawer_rate:\r\n\r\n                break;\r\n            case R.id.drawer_feedback:\r\n\r\n                break;\r\n            case R.id.drawer_about_us:\r\n\r\n                break;\r\n            case R.id.drawer_setting:\r\n\r\n                break;\r\n            case R.id.drawer_logout:\r\n                dialog = createDialog(\"Logout\",R.drawable.ic_baseline_exit_to_app_24);\r\n                dialog.create().show();\r\n                break;\r\n            default:\r\n                return false;\r\n        }\r\n        drawerLayout.closeDrawer(GravityCompat.START);\r\n        return false;\r\n    }\r\n\r\n    private AlertDialog.Builder createDialog(String title, int icon) {\r\n        return new AlertDialog.Builder(this)\r\n                .setTitle(title)\r\n                .setMessage(\"Are you sure?\")\r\n                .setIcon(icon)\r\n                .setNegativeButton(\"OK\", new DialogInterface.OnClickListener() {\r\n                    @Override\r\n                    public void onClick(DialogInterface dialog, int which) {\r\n                        PrefManager prefManager = new PrefManager(getApplicationContext());\r\n                        prefManager.setLogout();\r\n                        startActivity(new Intent(HomeActivity.this,SigninActivity.class));\r\n                        finish();\r\n                    }\r\n                }).setPositiveButton(\"Cancel\", new DialogInterface.OnClickListener() {\r\n                    @Override\r\n                    public void onClick(DialogInterface dialog, int which) {\r\n\r\n                    }\r\n                }).setCancelable(false);\r\n    }\r\n\r\n    @Override\r\n    public void onBackPressed() {\r\n        if(drawerLayout.isDrawerOpen(GravityCompat.START))\r\n            drawerLayout.closeDrawer(GravityCompat.START);\r\n        else\r\n            super.onBackPressed();\r\n    }\r\n\r\n    public void showPopup(View v) { //Fab Action\r\n\r\n        final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(HomeActivity.this, R.style.BottomSheetTheme);\r\n        View bottomSheetView = LayoutInflater.from(getApplicationContext())\r\n                .inflate(R.layout.bottom_sheet_dialog, (LinearLayout)findViewById(R.id.bottom_sheet));\r\n\r\n        bottomSheetView.findViewById(R.id.hide_sheet).setOnClickListener(new View.OnClickListener() {\r\n            @Override\r\n            public void onClick(View v) {\r\n                bottomSheetDialog.dismiss();\r\n            }\r\n        });\r\n\r\n        bottomSheetView.findViewById(R.id.ilost).setOnClickListener(new View.OnClickListener() {\r\n            @Override\r\n            public void onClick(View v) {\r\n                startActivity(new Intent(HomeActivity.this, LostObjectDetailsActivity.class));\r\n                bottomSheetDialog.dismiss();\r\n            }\r\n        });\r\n\r\n        bottomSheetView.findViewById(R.id.ifound).setOnClickListener(new View.OnClickListener() {\r\n            @Override\r\n            public void onClick(View v) {\r\n                startActivity(new Intent(HomeActivity.this, FoundObjectActivity.class));\r\n                bottomSheetDialog.dismiss();\r\n            }\r\n        });\r\n\r\n        bottomSheetDialog.setContentView(bottomSheetView);\r\n        bottomSheetDialog.show();\r\n\r\n    }\r\n\r\n\r\n    private BottomNavigationView.OnNavigationItemSelectedListener navListner =\r\n            new BottomNavigationView.OnNavigationItemSelectedListener() {\r\n                @Override\r\n                public boolean onNavigationItemSelected(@NonNull MenuItem item) {\r\n                    Fragment selectedFragment = getSupportFragmentManager().getFragments().get(0);\r\n                    switch (item.getItemId()) {\r\n                        case R.id.miHome:\r\n                            if(!(selectedFragment instanceof HomeFragment))\r\n                                selectedFragment = fhome;\r\n                            break;\r\n                        case R.id.miMatch:\r\n                            if(!(selectedFragment instanceof MatchFragment))\r\n                                selectedFragment = fmatch;\r\n                            break;\r\n                        case R.id.miProfile:\r\n                            if(!(selectedFragment instanceof ProfileFragment))\r\n                                selectedFragment = fprofile;\r\n                            break;\r\n                        case R.id.miLocation:\r\n                            selectedFragment = new FoundMapFragment();\r\n                            break;\r\n                    }\r\n                    getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();\r\n                    return true;\r\n                }\r\n            };\r\n\r\n    class DownloadProfilePic extends AsyncTask<String,Void, Bitmap> {\r\n\r\n        private Bitmap download(String urlLink) throws IOException {\r\n            Bitmap bitmap = null;\r\n            URL url = null;\r\n            HttpURLConnection httpConn;\r\n            InputStream is = null;\r\n            try {\r\n                url = new URL(urlLink);\r\n                httpConn = (HttpURLConnection) url.openConnection();\r\n                httpConn.connect();\r\n                is = httpConn.getInputStream();\r\n                bitmap = BitmapFactory.decodeStream(is);\r\n            }catch (MalformedURLException e){\r\n                Log.e(\"DownloadProfilePic\", \"download: \"+e.getMessage());\r\n            }\r\n            return  bitmap;\r\n        }\r\n\r\n        @Override\r\n        protected Bitmap doInBackground(String... urls) {\r\n            try {\r\n                return download(urls[0]);\r\n            } catch (IOException e) {\r\n                e.printStackTrace();\r\n            }\r\n            return null;\r\n        }\r\n\r\n        @Override\r\n        protected void onPostExecute(Bitmap bitmap) {\r\n            super.onPostExecute(bitmap);\r\n            if(bitmap==null)return;\r\n            User.getUser().setProfile_bitmap(bitmap);\r\n            imgnavigator.setImageBitmap(bitmap);\r\n        }\r\n    }\r\n}
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- app/src/main/java/com/helloworld/goodpoint/ui/HomeActivity.java	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ app/src/main/java/com/helloworld/goodpoint/ui/HomeActivity.java	(date 1621854743164)
@@ -107,9 +107,11 @@
         imgnavigator = view.findViewById(R.id.circuler_profile_img);
         namenavigator.setText(User.getUser().getUsername());
         mailnavigator.setText(User.getUser().getEmail());
-        if(!User.getUser().getProfile_pic().isEmpty() && User.getUser().getProfile_bitmap() == null) {
+        if(User.getUser().getProfile_pic() != null &&!User.getUser().getProfile_pic().isEmpty() && User.getUser().getProfile_bitmap() == null) {
+            Log.e("Profile Pic", User.getUser().getProfile_pic());
+            String dnsLink = new PrefManager(this).getNGROKLink();
             DownloadProfilePic download = new DownloadProfilePic();
-            download.execute(User.getUser().getProfile_pic());
+            download.execute(dnsLink+User.getUser().getProfile_pic()+"/");
         }
     }
 
@@ -254,6 +256,7 @@
             URL url = null;
             HttpURLConnection httpConn;
             InputStream is = null;
+            Log.e("ProfilePic", urlLink);
             try {
                 url = new URL(urlLink);
                 httpConn = (HttpURLConnection) url.openConnection();
Index: backend/find_losts/migrations/0003_auto_20210429_1627.py
===================================================================
--- backend/find_losts/migrations/0003_auto_20210429_1627.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0003_auto_20210429_1627.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,18 +0,0 @@
-# Generated by Django 3.1.7 on 2021-04-29 14:27
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('find_losts', '0002_auto_20210216_2354'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='lostitem',
-            name='image',
-            field=models.ImageField(blank=True, null=True, upload_to=''),
-        ),
-    ]
Index: backend/find_losts/migrations/0011_auto_20210503_0616.py
===================================================================
--- backend/find_losts/migrations/0011_auto_20210503_0616.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0011_auto_20210503_0616.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,19 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-03 04:16
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('find_losts', '0010_auto_20210503_0612'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='lostpersonimage',
-            name='id',
-            field=models.OneToOneField(db_column='id', on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='find_losts.lostperson'),
-        ),
-    ]
Index: backend/find_losts/migrations/0008_auto_20210503_0451.py
===================================================================
--- backend/find_losts/migrations/0008_auto_20210503_0451.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0008_auto_20210503_0451.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,18 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-03 02:51
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('find_losts', '0007_auto_20210503_0451'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='lostpersonimage',
-            name='image',
-            field=models.ImageField(unique=True, upload_to=''),
-        ),
-    ]
Index: backend/user_account/migrations/0002_auto_20210318_0955.py
===================================================================
--- backend/user_account/migrations/0002_auto_20210318_0955.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/user_account/migrations/0002_auto_20210318_0955.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,18 +0,0 @@
-# Generated by Django 3.1.4 on 2021-03-18 07:55
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('user_account', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='user',
-            name='email',
-            field=models.EmailField(blank=True, max_length=1),
-        ),
-    ]
Index: backend/find_losts/migrations/0010_auto_20210503_0612.py
===================================================================
--- backend/find_losts/migrations/0010_auto_20210503_0612.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0010_auto_20210503_0612.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,18 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-03 04:12
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('find_losts', '0009_auto_20210503_0456'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='foundobject',
-            name='date',
-            field=models.DateField(),
-        ),
-    ]
Index: backend/find_losts/migrations/0014_remove_founditem_image.py
===================================================================
--- backend/find_losts/migrations/0014_remove_founditem_image.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0014_remove_founditem_image.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,17 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-15 13:14
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('find_losts', '0013_auto_20210514_0152'),
-    ]
-
-    operations = [
-        migrations.RemoveField(
-            model_name='founditem',
-            name='image',
-        ),
-    ]
Index: backend/user_account/migrations/0001_initial.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- backend/user_account/migrations/0001_initial.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/user_account/migrations/0001_initial.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,48 +0,0 @@
-# Generated by Django 3.1.4 on 2021-02-16 21:54
-
-import django.contrib.auth.models
-import django.contrib.auth.validators
-from django.db import migrations, models
-import django.utils.timezone
-import user_account.models
-
-
-class Migration(migrations.Migration):
-
-    initial = True
-
-    dependencies = [
-        ('auth', '0012_alter_user_first_name_max_length'),
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='User',
-            fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('password', models.CharField(max_length=128, verbose_name='password')),
-                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
-                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
-                ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
-                ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')),
-                ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
-                ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
-                ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
-                ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
-                ('email', models.EmailField(max_length=65, unique=True)),
-                ('phone', models.CharField(max_length=20, unique=True)),
-                ('birthdate', models.DateField()),
-                ('city', models.CharField(max_length=35)),
-                ('profile_pic', models.ImageField(blank=True, null=True, upload_to=user_account.models.profile_pic_dir)),
-                ('id_card_pic', models.ImageField(blank=True, null=True, upload_to=user_account.models.idcard_pic_dir)),
-                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
-                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
-            ],
-            options={
-                'db_table': 'user',
-            },
-            managers=[
-                ('objects', django.contrib.auth.models.UserManager()),
-            ],
-        ),
-    ]
Index: backend/find_losts/migrations/0001_initial.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- backend/find_losts/migrations/0001_initial.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0001_initial.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,113 +0,0 @@
-# Generated by Django 3.1.4 on 2021-02-16 21:54
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    initial = True
-
-    dependencies = [
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='Candidate',
-            fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('percent', models.DecimalField(decimal_places=4, max_digits=5)),
-                ('is_matched', models.BooleanField(default=False)),
-            ],
-            options={
-                'db_table': 'candidate',
-            },
-        ),
-        migrations.CreateModel(
-            name='FoundObject',
-            fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('date', models.DateTimeField()),
-                ('longitude', models.DecimalField(decimal_places=10, default=0.0, max_digits=14)),
-                ('latitude', models.DecimalField(decimal_places=10, default=0.0, max_digits=14)),
-                ('city', models.CharField(max_length=35)),
-                ('is_matched', models.BooleanField(default=False)),
-            ],
-            options={
-                'db_table': 'found_object',
-            },
-        ),
-        migrations.CreateModel(
-            name='LostObject',
-            fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('date', models.DateTimeField()),
-                ('city', models.CharField(max_length=35)),
-                ('is_matched', models.BooleanField(default=False)),
-            ],
-            options={
-                'db_table': 'lost_object',
-            },
-        ),
-        migrations.CreateModel(
-            name='FoundItem',
-            fields=[
-                ('id', models.OneToOneField(db_column='id', on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='find_losts.foundobject')),
-                ('type', models.CharField(max_length=20)),
-                ('color', models.CharField(max_length=20)),
-                ('brand', models.CharField(max_length=50)),
-                ('description', models.CharField(max_length=700)),
-                ('serial_number', models.CharField(blank=True, max_length=100, null=True)),
-                ('image', models.ImageField(unique=True, upload_to='')),
-            ],
-            options={
-                'db_table': 'found_item',
-            },
-        ),
-        migrations.CreateModel(
-            name='FoundPerson',
-            fields=[
-                ('id', models.OneToOneField(db_column='id', on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='find_losts.foundobject')),
-                ('name', models.CharField(blank=True, max_length=150, null=True)),
-            ],
-            options={
-                'db_table': 'found_person',
-            },
-        ),
-        migrations.CreateModel(
-            name='LostItem',
-            fields=[
-                ('id', models.OneToOneField(db_column='id', on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='find_losts.lostobject')),
-                ('type', models.CharField(max_length=20)),
-                ('color', models.CharField(max_length=20)),
-                ('brand', models.CharField(max_length=50)),
-                ('description', models.CharField(max_length=700)),
-                ('serial_number', models.CharField(blank=True, max_length=100, null=True)),
-                ('image', models.ImageField(blank=True, null=True, unique=True, upload_to='')),
-            ],
-            options={
-                'db_table': 'lost_item',
-            },
-        ),
-        migrations.CreateModel(
-            name='LostPerson',
-            fields=[
-                ('id', models.OneToOneField(db_column='id', on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='find_losts.lostobject')),
-                ('name', models.CharField(max_length=150)),
-            ],
-            options={
-                'db_table': 'lost_person',
-            },
-        ),
-        migrations.CreateModel(
-            name='MatchedPerson',
-            fields=[
-                ('id_fp', models.OneToOneField(db_column='found_person_id', on_delete=django.db.models.deletion.CASCADE, primary_key=True, related_name='match', serialize=False, to='find_losts.foundobject')),
-                ('date_of_receiving', models.DateTimeField(auto_now_add=True)),
-                ('percent', models.DecimalField(decimal_places=4, max_digits=5)),
-            ],
-            options={
-                'db_table': 'matched_Person',
-            },
-        ),
-    ]
Index: backend/find_losts/migrations/0012_auto_20210503_1505.py
===================================================================
--- backend/find_losts/migrations/0012_auto_20210503_1505.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0012_auto_20210503_1505.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,18 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-03 13:05
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('find_losts', '0011_auto_20210503_0616'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='lostobject',
-            name='date',
-            field=models.DateField(),
-        ),
-    ]
Index: backend/find_losts/migrations/0009_auto_20210503_0456.py
===================================================================
--- backend/find_losts/migrations/0009_auto_20210503_0456.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0009_auto_20210503_0456.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,17 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-03 02:56
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('find_losts', '0008_auto_20210503_0451'),
-    ]
-
-    operations = [
-        migrations.AlterUniqueTogether(
-            name='lostpersonimage',
-            unique_together={('id', 'image')},
-        ),
-    ]
Index: backend/notification/migrations/0001_initial.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- backend/notification/migrations/0001_initial.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/notification/migrations/0001_initial.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,29 +0,0 @@
-# Generated by Django 3.1.4 on 2021-02-16 21:54
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    initial = True
-
-    dependencies = [
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='Notification',
-            fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('title', models.CharField(max_length=30)),
-                ('description', models.CharField(max_length=100)),
-                ('type', models.IntegerField()),
-                ('date_time', models.DateTimeField(auto_now_add=True)),
-                ('is_sent', models.BooleanField(default=False)),
-                ('is_read', models.BooleanField(default=False)),
-            ],
-            options={
-                'db_table': 'notification',
-            },
-        ),
-    ]
Index: backend/find_losts/migrations/0006_auto_20210501_1627.py
===================================================================
--- backend/find_losts/migrations/0006_auto_20210501_1627.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0006_auto_20210501_1627.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,19 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-01 14:27
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('find_losts', '0005_auto_20210501_1552'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='foundpersonimage',
-            name='id',
-            field=models.ForeignKey(db_column='id', on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='find_losts.foundperson'),
-        ),
-    ]
Index: backend/notification/migrations/0004_auto_20210514_1846.py
===================================================================
--- backend/notification/migrations/0004_auto_20210514_1846.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/notification/migrations/0004_auto_20210514_1846.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,18 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-14 16:46
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('notification', '0003_auto_20210503_0612'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='notification',
-            name='date_time',
-            field=models.DateTimeField(auto_now_add=True),
-        ),
-    ]
Index: backend/notification/migrations/0002_notification_user_id.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- backend/notification/migrations/0002_notification_user_id.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/notification/migrations/0002_notification_user_id.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,23 +0,0 @@
-# Generated by Django 3.1.4 on 2021-02-16 21:54
-
-from django.conf import settings
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    initial = True
-
-    dependencies = [
-        ('notification', '0001_initial'),
-        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='notification',
-            name='user_id',
-            field=models.ForeignKey(db_column='user_id', on_delete=django.db.models.deletion.CASCADE, related_name='notify', to=settings.AUTH_USER_MODEL),
-        ),
-    ]
Index: backend/find_losts/migrations/0004_auto_20210501_0251.py
===================================================================
--- backend/find_losts/migrations/0004_auto_20210501_0251.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0004_auto_20210501_0251.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,18 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-01 00:51
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('find_losts', '0003_auto_20210429_1627'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='lostobject',
-            name='date',
-            field=models.DateField(),
-        ),
-    ]
Index: backend/find_losts/migrations/0007_auto_20210503_0451.py
===================================================================
--- backend/find_losts/migrations/0007_auto_20210503_0451.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0007_auto_20210503_0451.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,48 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-03 02:51
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('find_losts', '0006_auto_20210501_1627'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='foundobject',
-            name='date',
-            field=models.DateTimeField(),
-        ),
-        migrations.AlterField(
-            model_name='foundpersonimage',
-            name='id',
-            field=models.OneToOneField(db_column='id', on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='find_losts.foundperson'),
-        ),
-        migrations.AlterField(
-            model_name='lostitem',
-            name='image',
-            field=models.ImageField(blank=True, null=True, unique=True, upload_to=''),
-        ),
-        migrations.AlterField(
-            model_name='lostobject',
-            name='date',
-            field=models.DateTimeField(),
-        ),
-        migrations.AlterField(
-            model_name='lostpersonimage',
-            name='id',
-            field=models.AutoField(primary_key=True, serialize=False),
-        ),
-        migrations.AlterField(
-            model_name='lostpersonimage',
-            name='image',
-            field=models.ImageField(upload_to=''),
-        ),
-        migrations.AlterUniqueTogether(
-            name='lostpersonimage',
-            unique_together=set(),
-        ),
-    ]
Index: backend/notification/migrations/0003_auto_20210503_0612.py
===================================================================
--- backend/notification/migrations/0003_auto_20210503_0612.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/notification/migrations/0003_auto_20210503_0612.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,18 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-03 04:12
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('notification', '0002_notification_user_id'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='notification',
-            name='date_time',
-            field=models.DateField(auto_now_add=True),
-        ),
-    ]
Index: backend/find_losts/migrations/0002_auto_20210216_2354.py
===================================================================
--- backend/find_losts/migrations/0002_auto_20210216_2354.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0002_auto_20210216_2354.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,85 +0,0 @@
-# Generated by Django 3.1.4 on 2021-02-16 21:54
-
-from django.conf import settings
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    initial = True
-
-    dependencies = [
-        ('find_losts', '0001_initial'),
-        ('notification', '0001_initial'),
-        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='lostobject',
-            name='user_id',
-            field=models.ForeignKey(db_column='user_id', on_delete=django.db.models.deletion.CASCADE, related_name='lost', to=settings.AUTH_USER_MODEL),
-        ),
-        migrations.AddField(
-            model_name='foundobject',
-            name='user_id',
-            field=models.ForeignKey(db_column='user_id', on_delete=django.db.models.deletion.CASCADE, related_name='found', to=settings.AUTH_USER_MODEL),
-        ),
-        migrations.AddField(
-            model_name='candidate',
-            name='notify_id',
-            field=models.ForeignKey(db_column='notify_id', on_delete=django.db.models.deletion.CASCADE, related_name='reach_candidates_to_who_found', to='notification.notification'),
-        ),
-        migrations.AddField(
-            model_name='matchedperson',
-            name='id_lp',
-            field=models.OneToOneField(db_column='lost_person_id', on_delete=django.db.models.deletion.CASCADE, related_name='match', to='find_losts.lostobject'),
-        ),
-        migrations.AddField(
-            model_name='matchedperson',
-            name='notify_id_fp',
-            field=models.ForeignKey(db_column='notify_id_fp', on_delete=django.db.models.deletion.CASCADE, related_name='reach_match_to_who_found', to='notification.notification'),
-        ),
-        migrations.AddField(
-            model_name='matchedperson',
-            name='notify_id_lp',
-            field=models.ForeignKey(db_column='notify_id_lp', on_delete=django.db.models.deletion.CASCADE, related_name='reach_match_to_who_lost', to='notification.notification'),
-        ),
-        migrations.AddField(
-            model_name='candidate',
-            name='id_fi',
-            field=models.ForeignKey(db_column='found_item_id', on_delete=django.db.models.deletion.CASCADE, related_name='candidate', to='find_losts.founditem'),
-        ),
-        migrations.AddField(
-            model_name='candidate',
-            name='id_li',
-            field=models.ForeignKey(db_column='lost_item_id', on_delete=django.db.models.deletion.CASCADE, related_name='candidate', to='find_losts.lostitem'),
-        ),
-        migrations.CreateModel(
-            name='LostPersonImage',
-            fields=[
-                ('id', models.OneToOneField(db_column='id', on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='find_losts.lostperson')),
-                ('image', models.ImageField(unique=True, upload_to='')),
-            ],
-            options={
-                'db_table': 'lost_person_image',
-                'unique_together': {('id', 'image')},
-            },
-        ),
-        migrations.CreateModel(
-            name='FoundPersonImage',
-            fields=[
-                ('id', models.OneToOneField(db_column='id', on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='find_losts.foundperson')),
-                ('image', models.ImageField(unique=True, upload_to='')),
-            ],
-            options={
-                'db_table': 'found_person_image',
-                'unique_together': {('id', 'image')},
-            },
-        ),
-        migrations.AlterUniqueTogether(
-            name='candidate',
-            unique_together={('id_li', 'id_fi')},
-        ),
-    ]
Index: backend/find_losts/migrations/0013_auto_20210514_0152.py
===================================================================
--- backend/find_losts/migrations/0013_auto_20210514_0152.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0013_auto_20210514_0152.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,18 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-13 23:52
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('find_losts', '0012_auto_20210503_1505'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='lostitem',
-            name='image',
-            field=models.ImageField(blank=True, null=True, upload_to=''),
-        ),
-    ]
Index: backend/find_losts/migrations/0005_auto_20210501_1552.py
===================================================================
--- backend/find_losts/migrations/0005_auto_20210501_1552.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/migrations/0005_auto_20210501_1552.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
@@ -1,18 +0,0 @@
-# Generated by Django 3.1.7 on 2021-05-01 13:52
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('find_losts', '0004_auto_20210501_0251'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='foundobject',
-            name='date',
-            field=models.DateField(),
-        ),
-    ]
Index: backend/find_losts/serializers.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+>from rest_framework import serializers\r\nfrom rest_framework_simplejwt.tokens import RefreshToken, TokenError\r\nfrom .models import *\r\nfrom user_account.models import User\r\n\r\n\r\nclass LostObjectSerializer(serializers.ModelSerializer):\r\n\r\n    class Meta:\r\n        model = LostObject\r\n        fields = ['id', 'date', 'city', 'is_matched', 'user_id']\r\n\r\n\r\nclass LostItemSerializer(serializers.ModelSerializer):\r\n\r\n    class Meta:\r\n        model = LostItem\r\n        fields = ['id', 'type', 'serial_number', 'brand', 'color', 'description', 'image']\r\n\r\n    def validate(self, attrs):\r\n        if LostPerson.objects.filter(id=attrs.get('id', '')).exists():\r\n            raise serializers.ValidationError({'id': {'id already exists'}})\r\n        return super().validate(attrs)\r\n\r\n\r\nclass LostPersonSerializer(serializers.ModelSerializer):\r\n\r\n    class Meta:\r\n        model = LostPerson\r\n        fields = ['id', 'name']\r\n\r\n    def validate(self, attrs):\r\n        if LostItem.objects.filter(id=attrs.get('id', '')).exists():\r\n            raise serializers.ValidationError({'id': {'id already exists'}})\r\n        return super().validate(attrs)\r\n\r\n\r\nclass LostPersonImageSerializer(serializers.ModelSerializer):\r\n    class Meta:\r\n        model = LostPersonImage\r\n        fields = '__all__'\r\n\r\n\r\n\r\nclass FoundObjectSerializer(serializers.ModelSerializer):\r\n    class Meta:\r\n        model = FoundObject\r\n        fields = ['id', 'date', 'longitude', 'latitude', 'city', 'user_id', 'is_matched']\r\n\r\nclass FoundItemSerializer(serializers.ModelSerializer):\r\n    class Meta:\r\n        model = FoundItem\r\n        fields = ['id', 'type', 'color', 'brand', 'description', 'serial_number']#image_removed\r\n\r\n    def validate(self, attrs):\r\n        if FoundPerson.objects.filter(id=attrs.get('id', '')).exists():\r\n            raise serializers.ValidationError({'id': {'id already exists'}})\r\n        return super().validate(attrs)\r\n\r\n\r\nclass FoundPersonSerializer(serializers.ModelSerializer):\r\n    class Meta:\r\n        model = FoundPerson\r\n        fields = ['id', 'name']\r\n\r\n    def validate(self, attrs):\r\n        if FoundItem.objects.filter(id=attrs.get('id', '')).exists():\r\n            raise serializers.ValidationError({'id': {'id already exists'}})\r\n        return super().validate(attrs)\r\n\r\n\r\nclass FoundPersonImageSerializer(serializers.ModelSerializer):\r\n    class Meta:\r\n        model = FoundPersonImage\r\n        fields = ['id_image', 'image']\r\n\r\nclass MapSerializer(serializers.ModelSerializer):\r\n    longitude = serializers.DecimalField(max_digits=14, decimal_places=10, source='id.longitude')\r\n    latitude = serializers.DecimalField(max_digits=14, decimal_places=10, source='id.latitude')\r\n    user_id = serializers.IntegerField(source='id.user_id.id')\r\n\r\n    class Meta:\r\n        model = FoundItem\r\n        fields = ['longitude', 'latitude', 'user_id']\r\n
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- backend/find_losts/serializers.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/serializers.py	(date 1621860226693)
@@ -2,13 +2,16 @@
 from rest_framework_simplejwt.tokens import RefreshToken, TokenError
 from .models import *
 from user_account.models import User
+from django.db.models import Count
+import face_recognition
+import numpy as np
 
 
 class LostObjectSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = LostObject
-        fields = ['id', 'date', 'city', 'is_matched', 'user_id']
+        fields = ['date', 'city','user_id']
 
 
 class LostItemSerializer(serializers.ModelSerializer):
@@ -21,36 +24,122 @@
         if LostPerson.objects.filter(id=attrs.get('id', '')).exists():
             raise serializers.ValidationError({'id': {'id already exists'}})
         return super().validate(attrs)
-
-
-class LostPersonSerializer(serializers.ModelSerializer):
-
-    class Meta:
-        model = LostPerson
-        fields = ['id', 'name']
-
-    def validate(self, attrs):
-        if LostItem.objects.filter(id=attrs.get('id', '')).exists():
-            raise serializers.ValidationError({'id': {'id already exists'}})
-        return super().validate(attrs)
 
 
 class LostPersonImageSerializer(serializers.ModelSerializer):
     class Meta:
         model = LostPersonImage
-        fields = '__all__'
+        fields = ['image']
+
+
+def match_with_found_person(pk):
+    source_img = face_recognition.load_image_file(f'media/lostperson/{pk}.jpg')
+    source_encoding = face_recognition.face_encodings(source_img)[0]
+    founds = list(FoundPerson.objects.values_list('id'))
+
+    encodings = []
+    ids = []
+    min_val = -1
+    for id_f in founds:
+        face = face_recognition.load_image_file(f'media/foundperson/{id_f[0]}.jpg')
+        encodings.append(face_recognition.face_encodings(face)[0])
+        ids.append(id_f[0])
 
+    dist = face_recognition.face_distance(encodings,source_encoding)
+    if dist.size > 0:
+        min_val = min(dist)
 
+    if 0 < min_val <= 0.52:
+        return min_val, ids[dist.argmin()]
+    else:
+        return -1, -1
+
+"""
+    mini = 1.0
+    minid = -1
+    for id in ids:
+        sum_dist = 0.0
+        for img_num in range(id.number_of_images):
+            face = face_recognition.load_image_file(f'media/foundperson/{source_id.pk}/{img_num + 1}.jpg')
+            encoding = face_recognition.face_encodings(face)[0]
+            dist = list(face_recognition.face_distance(source_encodings, encoding))
+            sum_dist = sum_dist + sum(dist)
+
+        avg = sum_dist/(source_id.number_of_images*id.number_of_images)
+        if avg < mini:
+            mini = avg
+            minid = id
+
+    if 0 < mini <= 0.52:
+        return mini, minid
+    else:
+        return -1, -1
+"""
+
+
+class LostPersonSerializer(serializers.ModelSerializer):
+    date = serializers.DateField()
+    city = serializers.CharField(max_length=35)
+    user_id = serializers.IntegerField()
+
+    class Meta:
+        model = LostPerson
+        fields = ['date', 'city', 'user_id', 'name', 'image']
+    
+    def create(self, validated_data):
+        data = validated_data.copy()
+        #images_data = data.pop('images')
+        #self.context.get('request').data.pop('images')
+        user = User.objects.get(id=data.pop('user_id'))
+        person_id = LostObject.objects.create(date=data.pop('date'), city=data.pop('city'), user_id=user)
+        person = None
+
+        try:
+            person = LostPerson.objects.create(id=person_id, **data)
+            print(person)
+        except TypeError:
+            obj = LostObject.objects.get(id=person.id)
+            obj.delete()
+            raise TypeError('TypeError: LostPerson.objects.create()')
+        """
+        try:
+            cnt = 0
+            for img in images_data:
+                cnt = cnt + 1
+                image = LostPersonImage.objects.create(id_lp=person.pk, image_number=cnt, image=img)
+                person.person_image.add(image)
+        except TypeError:
+            person = LostPerson.objects.get(id=person.id)
+            obj = LostObject.objects.get(id=person.id)
+            person.delete()
+            obj.delete()
+            raise TypeError('TypeError: LostPersonImage.objects.create()')
+        """
+
+        res_match = match_with_found_person(person.pk)
+        print(res_match)
+        matched = False
+        """
+        if res_match != -1:
+            matched = True
+            matched_person = FoundPerson.objects.filter(id=res_match[0])
+            #Notification.objects.create()
+            #Notification.objects.create()
+            #MatchedPerson.objects.create()
+            pass
+        """
+
+        return validated_data
 
 class FoundObjectSerializer(serializers.ModelSerializer):
     class Meta:
         model = FoundObject
-        fields = ['id', 'date', 'longitude', 'latitude', 'city', 'user_id', 'is_matched']
+        fields = ['date', 'longitude', 'latitude', 'city', 'user_id', 'is_matched']
 
 class FoundItemSerializer(serializers.ModelSerializer):
     class Meta:
         model = FoundItem
-        fields = ['id', 'type', 'color', 'brand', 'description', 'serial_number']#image_removed
+        fields = ['id', 'type', 'color', 'brand', 'description', 'serial_number', 'image']
 
     def validate(self, attrs):
         if FoundPerson.objects.filter(id=attrs.get('id', '')).exists():
@@ -58,15 +147,86 @@
         return super().validate(attrs)
 
 
+def match_with_lost_person(pk):
+    source_img = face_recognition.load_image_file(f'media/foundperson/{pk}.jpg')
+    source_encoding = face_recognition.face_encodings(source_img)[0]
+    losts = list(LostPerson.objects.values_list('id'))
+    print(losts)
+    encodings = []
+    ids = []
+    for id_l in losts:
+        face = face_recognition.load_image_file(f'media/lostperson/{id_l[0]}.jpg')
+        encodings.append(face_recognition.face_encodings(face)[0])
+        ids.append(id_l[0])
+
+    dist = face_recognition.face_distance(encodings, source_encoding)
+    min_val = min(dist)
+
+    if dist.size > 0:
+        min_val = min(dist)
+
+    if 0 < min_val <= 0.52:
+        return min_val, ids[dist.argmin()]
+    else:
+        return -1, -1
+
+
 class FoundPersonSerializer(serializers.ModelSerializer):
+    date = serializers.DateField()
+    longitude = serializers.DecimalField(max_digits=14, decimal_places=10, default=0.0)
+    latitude = serializers.DecimalField(max_digits=14, decimal_places=10, default=0.0)
+    city = serializers.CharField(max_length=35)
+    user_id = serializers.IntegerField()
+
     class Meta:
         model = FoundPerson
-        fields = ['id', 'name']
+        fields = ['date', 'longitude', 'latitude', 'city', 'user_id', 'name', 'image']
+
+    def create(self, validated_data):
+        data = validated_data.copy()
+        #images_data = data.pop('images')
+        #self.context.get('request').data.pop('images')
+        user = User.objects.get(id=data.pop('user_id'))
+        person_id = FoundObject.objects.create(date=data.pop('date'), longitude=data.pop('longitude'),
+                                              latitude=data.pop('latitude'), city=data.pop('city'), user_id=user)
+        person = None
 
-    def validate(self, attrs):
-        if FoundItem.objects.filter(id=attrs.get('id', '')).exists():
-            raise serializers.ValidationError({'id': {'id already exists'}})
-        return super().validate(attrs)
+        try:
+            person = FoundPerson.objects.create(id=person_id, **data)
+            print(person)
+        except TypeError:
+            obj = FoundObject.objects.get(id=person.id)
+            obj.delete()
+            raise TypeError('TypeError: FoundPerson.objects.create()')
+        """
+        try:
+            cnt = 0
+            for img in images_data:
+                cnt = cnt + 1
+                image = LostPersonImage.objects.create(id_lp=person.pk, image_number=cnt, image=img)
+                person.person_image.add(image)
+        except TypeError:
+            person = LostPerson.objects.get(id=person.id)
+            obj = LostObject.objects.get(id=person.id)
+            person.delete()
+            obj.delete()
+            raise TypeError('TypeError: LostPersonImage.objects.create()')
+        """
+
+        res_match = match_with_lost_person(person.pk)
+        print(res_match)
+        matched = False
+        """
+        if res_match != -1:
+            matched = True
+            matched_person = LostPerson.objects.filter(id=res_match[0])
+            #Notification.objects.create()
+            #Notification.objects.create()
+            #MatchedPerson.objects.create()
+            pass
+        """
+
+        return validated_data
 
 
 class FoundPersonImageSerializer(serializers.ModelSerializer):
@@ -74,6 +234,7 @@
         model = FoundPersonImage
         fields = ['id_image', 'image']
 
+
 class MapSerializer(serializers.ModelSerializer):
     longitude = serializers.DecimalField(max_digits=14, decimal_places=10, source='id.longitude')
     latitude = serializers.DecimalField(max_digits=14, decimal_places=10, source='id.latitude')
Index: backend/user_account/serializers.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+>from rest_framework import serializers\r\nfrom rest_framework_simplejwt.tokens import RefreshToken, TokenError\r\nfrom .models import User\r\n\r\n\r\nclass SignupSerializer(serializers.ModelSerializer):\r\n    username = serializers.CharField(max_length=150)\r\n    # email = serializers.EmailField(max_length=65, min_length=4)\r\n    password = serializers.CharField(max_length=65, min_length=8, write_only=True)\r\n    first_name = serializers.CharField(max_length=255, min_length=2)\r\n    phone = serializers.CharField(max_length=20, min_length=5)\r\n    city = serializers.CharField(max_length=35)\r\n    birthdate = serializers.DateField\r\n    profile_pic = serializers.ImageField\r\n\r\n    class Meta:\r\n        model = User\r\n        fields = ['username', 'password', 'first_name', 'phone', 'city', 'birthdate', 'profile_pic']\r\n\r\n    def validate(self, attrs):\r\n        exist_email = User.objects.filter(username=attrs.get('username', '')).exists()\r\n        exist_phone = User.objects.filter(phone=attrs.get('phone', '')).exists()\r\n        if exist_email and exist_phone:\r\n            raise serializers.ValidationError(\r\n                {\r\n                    'error': {\r\n                        'username': 'Email already exists',\r\n                        'phone': 'Phone number already exists'\r\n                    }\r\n                })\r\n        if exist_email:\r\n            raise serializers.ValidationError({'error': {'username': 'Email already exists', 'phone': ''}})\r\n        if exist_phone:\r\n            raise serializers.ValidationError({'error': {'username': '', 'phone': 'Phone number already exists'}})\r\n        return super().validate(attrs)\r\n\r\n    def create(self, validated_data):\r\n        return User.objects.create_user(**validated_data)\r\n\r\n\r\nclass LogoutSerializer(serializers.Serializer):\r\n    token = serializers.CharField()\r\n\r\n    def validate(self, attrs):\r\n        self.token = attrs['refresh']\r\n        return attrs\r\n\r\n    def save(self, **kwargs):\r\n        try:\r\n            RefreshToken(self.token).blacklist()\r\n        except TokenError:\r\n            self.fail('bad_token')\r\n\r\n    def update(self, instance, validated_data):\r\n        pass\r\n\r\n    def create(self, validated_data):\r\n        pass\r\n\r\n\r\nclass WhoFoundItemSerializer(serializers.ModelSerializer):\r\n    name = serializers.CharField(source='first_name')\r\n    email = serializers.CharField(source='username')\r\n\r\n    class Meta:\r\n        model = User\r\n        fields = ['name', 'email', 'phone']\r\n
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- backend/user_account/serializers.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/user_account/serializers.py	(date 1621783334231)
@@ -4,14 +4,6 @@
 
 
 class SignupSerializer(serializers.ModelSerializer):
-    username = serializers.CharField(max_length=150)
-    # email = serializers.EmailField(max_length=65, min_length=4)
-    password = serializers.CharField(max_length=65, min_length=8, write_only=True)
-    first_name = serializers.CharField(max_length=255, min_length=2)
-    phone = serializers.CharField(max_length=20, min_length=5)
-    city = serializers.CharField(max_length=35)
-    birthdate = serializers.DateField
-    profile_pic = serializers.ImageField
 
     class Meta:
         model = User
Index: backend/find_losts/models.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+>from django.db import models\r\nfrom user_account.models import User\r\nfrom notification.models import Notification\r\n\r\n\r\n# Create your models here.\r\n\r\nclass LostObject(models.Model):\r\n    date = models.DateField()\r\n    city = models.CharField(max_length=35)\r\n    user_id = models.ForeignKey(User, related_name='lost', on_delete=models.CASCADE, db_column='user_id')\r\n    is_matched = models.BooleanField(default=False)\r\n\r\n    class Meta:\r\n        db_table = 'lost_object'\r\n\r\n\r\nclass LostPerson(models.Model):\r\n    id = models.OneToOneField(LostObject, primary_key=True, on_delete=models.CASCADE, db_column='id')\r\n    name = models.CharField(max_length=150)\r\n\r\n    class Meta:\r\n        db_table = 'lost_person'\r\n\r\n\r\nclass LostPersonImage(models.Model):\r\n    #id = models.AutoField(primary_key=True)\r\n    id = models.OneToOneField(LostPerson, primary_key=True, on_delete=models.CASCADE, db_column='id')\r\n    image = models.ImageField(unique=True)\r\n\r\n    class Meta:\r\n        db_table = 'lost_person_image'\r\n        unique_together = (('id', 'image'),)\r\n\r\ndef lost_item_image(instance,filename):\r\n    return f\"lost_item/{instance.pk}.jpg/\"\r\n\r\nclass LostItem(models.Model):\r\n    id = models.OneToOneField(LostObject, primary_key=True, on_delete=models.CASCADE, db_column='id')\r\n    type = models.CharField(max_length=20)\r\n    color = models.CharField(max_length=20)\r\n    brand = models.CharField(max_length=50)\r\n    description = models.CharField(max_length=700)\r\n    serial_number = models.CharField(max_length=100, blank=True, null=True)\r\n    image = models.ImageField(blank=True, null=True, upload_to=lost_item_image)\r\n\r\n    class Meta:\r\n        db_table = 'lost_item'\r\n\r\n\r\n\r\nclass FoundObject(models.Model):\r\n    date = models.DateField()\r\n    longitude = models.DecimalField(max_digits=14, decimal_places=10, default=0.0)\r\n    latitude = models.DecimalField(max_digits=14, decimal_places=10, default=0.0)\r\n    city = models.CharField(max_length=35)\r\n    user_id = models.ForeignKey(User, related_name='found', on_delete=models.CASCADE, db_column='user_id')\r\n    is_matched = models.BooleanField(default=False)\r\n\r\n    class Meta:\r\n        db_table = 'found_object'\r\n\r\n\r\nclass FoundPerson(models.Model):\r\n    id = models.OneToOneField(FoundObject, primary_key=True, on_delete=models.CASCADE, db_column='id')\r\n    name = models.CharField(max_length=150, blank=True, null=True)\r\n\r\n    class Meta:\r\n        db_table = 'found_person'\r\n\r\n\r\nclass FoundPersonImage(models.Model):\r\n    id = models.OneToOneField(FoundPerson, primary_key=True, on_delete=models.CASCADE, db_column='id')\r\n    image = models.ImageField(unique=True)\r\n\r\n    class Meta:\r\n        db_table = 'found_person_image'\r\n        unique_together = (('id', 'image'),)\r\n\r\n\r\nclass FoundItem(models.Model):\r\n    id = models.OneToOneField(FoundObject, primary_key=True, on_delete=models.CASCADE, db_column='id')\r\n    type = models.CharField(max_length=20)\r\n    color = models.CharField(max_length=20)\r\n    brand = models.CharField(max_length=50)\r\n    description = models.CharField(max_length=700)\r\n    serial_number = models.CharField(max_length=100, blank=True, null=True)\r\n    #image = models.ImageField(unique=True)\r\n\r\n    class Meta:\r\n        db_table = 'found_item'\r\n\r\n\r\nclass Candidate(models.Model):\r\n    id_fi = models.ForeignKey(FoundItem, related_name='candidate', on_delete=models.CASCADE, db_column='found_item_id')\r\n    id_li = models.ForeignKey(LostItem, related_name='candidate', on_delete=models.CASCADE, db_column='lost_item_id')\r\n    percent = models.DecimalField(max_digits=5, decimal_places=4)\r\n    is_matched = models.BooleanField(default=False)\r\n    notify_id = models.ForeignKey(Notification, related_name='reach_candidates_to_who_found', on_delete=models.CASCADE,\r\n                                  db_column='notify_id')\r\n\r\n    class Meta:\r\n        db_table = 'candidate'\r\n        unique_together = (('id_li', 'id_fi'),)\r\n\r\n\r\nclass MatchedPerson(models.Model):\r\n    id_fp = models.OneToOneField(FoundObject, primary_key=True, unique=True, related_name='match',\r\n                                 on_delete=models.CASCADE, db_column='found_person_id')\r\n    id_lp = models.OneToOneField(LostObject, unique=True, related_name='match', on_delete=models.CASCADE,\r\n                                 db_column='lost_person_id')\r\n    date_of_receiving = models.DateTimeField(auto_now_add=True)\r\n    percent = models.DecimalField(max_digits=5, decimal_places=4)\r\n    notify_id_fp = models.ForeignKey(Notification, related_name='reach_match_to_who_found', on_delete=models.CASCADE,\r\n                                     db_column='notify_id_fp')\r\n    notify_id_lp = models.ForeignKey(Notification, related_name='reach_match_to_who_lost', on_delete=models.CASCADE,\r\n                                     db_column='notify_id_lp')\r\n\r\n    class Meta:\r\n        db_table = 'matched_Person'\r\n
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- backend/find_losts/models.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/models.py	(date 1621853397255)
@@ -15,26 +15,29 @@
         db_table = 'lost_object'
 
 
+def lost_person_images(instance,filename):
+    return f"lostperson/{instance.pk}.jpg"
+
+
+class LostPersonImage(models.Model):
+    id_lp = models.IntegerField
+    image_number = models.IntegerField
+    image = models.ImageField(blank=True, null=True, upload_to=lost_person_images)
+
+    class Meta:
+        db_table = 'lost_person_image'
+
+
 class LostPerson(models.Model):
-    id = models.OneToOneField(LostObject, primary_key=True, on_delete=models.CASCADE, db_column='id')
+    id = models.OneToOneField(LostObject, primary_key=True, on_delete=models.CASCADE, db_column='id', blank=True)
     name = models.CharField(max_length=150)
+    #person_image = models.ManyToManyField(LostPersonImage, db_column='images', related_name='images')
+    image = models.ImageField(blank=True, null=True, upload_to=lost_person_images)
 
     class Meta:
         db_table = 'lost_person'
 
 
-class LostPersonImage(models.Model):
-    #id = models.AutoField(primary_key=True)
-    id = models.OneToOneField(LostPerson, primary_key=True, on_delete=models.CASCADE, db_column='id')
-    image = models.ImageField(unique=True)
-
-    class Meta:
-        db_table = 'lost_person_image'
-        unique_together = (('id', 'image'),)
-
-def lost_item_image(instance,filename):
-    return f"lost_item/{instance.pk}.jpg/"
-
 class LostItem(models.Model):
     id = models.OneToOneField(LostObject, primary_key=True, on_delete=models.CASCADE, db_column='id')
     type = models.CharField(max_length=20)
@@ -42,13 +45,12 @@
     brand = models.CharField(max_length=50)
     description = models.CharField(max_length=700)
     serial_number = models.CharField(max_length=100, blank=True, null=True)
-    image = models.ImageField(blank=True, null=True, upload_to=lost_item_image)
+    image = models.ImageField(blank=True, null=True)
 
     class Meta:
         db_table = 'lost_item'
 
 
-
 class FoundObject(models.Model):
     date = models.DateField()
     longitude = models.DecimalField(max_digits=14, decimal_places=10, default=0.0)
@@ -61,9 +63,14 @@
         db_table = 'found_object'
 
 
+def found_person_images(instance,filename):
+    return f"foundperson/{instance.pk}.jpg"
+
+
 class FoundPerson(models.Model):
     id = models.OneToOneField(FoundObject, primary_key=True, on_delete=models.CASCADE, db_column='id')
     name = models.CharField(max_length=150, blank=True, null=True)
+    image = models.ImageField(blank=True, null=True, upload_to=found_person_images)
 
     class Meta:
         db_table = 'found_person'
@@ -85,7 +92,7 @@
     brand = models.CharField(max_length=50)
     description = models.CharField(max_length=700)
     serial_number = models.CharField(max_length=100, blank=True, null=True)
-    #image = models.ImageField(unique=True)
+    image = models.ImageField(null=True, blank=True)
 
     class Meta:
         db_table = 'found_item'
Index: backend/user_account/models.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+>from django.db import models\r\nfrom django.contrib.auth.models import AbstractUser\r\nfrom rest_framework_simplejwt.tokens import RefreshToken\r\n\r\n\r\n# Create your models here.\r\n\r\ndef profile_pic_dir(instance, filename):\r\n    return 'profile/{0}/'.format(filename)\r\n\r\n\r\ndef idcard_pic_dir(instance, filename):\r\n    return 'idcard/{0}/'.format(filename)\r\n\r\n\r\nclass User(AbstractUser):\r\n    email = models.EmailField(max_length=1, blank=True)\r\n    phone = models.CharField(max_length=20, unique=True)\r\n    birthdate = models.DateField()\r\n    city = models.CharField(max_length=35)\r\n    profile_pic = models.ImageField(blank=True, null=True, upload_to=profile_pic_dir)\r\n    id_card_pic = models.ImageField(blank=True, null=True, upload_to=idcard_pic_dir)\r\n\r\n    def __str__(self):\r\n        return self.username\r\n\r\n    def tokens(self):\r\n        refresh = RefreshToken.for_user(self)\r\n        return {\r\n            'refresh': str(refresh),\r\n            'access': str(refresh.access_token)\r\n        }\r\n\r\n    class Meta:\r\n        db_table = 'user'\r\n
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- backend/user_account/models.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/user_account/models.py	(date 1621784448372)
@@ -6,11 +6,11 @@
 # Create your models here.
 
 def profile_pic_dir(instance, filename):
-    return 'profile/{0}/'.format(filename)
+    return f"profile/{filename}"
 
 
 def idcard_pic_dir(instance, filename):
-    return 'idcard/{0}/'.format(filename)
+    return f"idcard/{filename}"
 
 
 class User(AbstractUser):
Index: backend/find_losts/views.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+>from django.shortcuts import render\r\nfrom rest_framework_simplejwt.tokens import RefreshToken, TokenError\r\nfrom rest_framework import serializers\r\nfrom django.http import HttpResponse\r\nfrom .models import LostObject, LostItem, LostPerson, LostPersonImage\r\nfrom rest_framework import status\r\nfrom .serializers import *\r\nfrom rest_framework import generics\r\nfrom rest_framework.views import APIView\r\nfrom rest_framework.response import Response\r\nfrom rest_framework.reverse import reverse\r\nfrom rest_framework import status\r\nfrom rest_framework import viewsets\r\nfrom rest_framework import permissions\r\n\r\n# Create your views here.\r\nclass LostObjectView(generics.ListCreateAPIView):\r\n    queryset = LostObject.objects.all()\r\n    serializer_class = LostObjectSerializer\r\n\r\n\r\nclass LostObjectDetailsView(generics.RetrieveUpdateDestroyAPIView):\r\n    queryset = LostObject.objects.all()\r\n    serializer_class = LostObjectSerializer\r\n\r\n\r\nclass LostItemView(generics.ListCreateAPIView):\r\n    queryset = LostItem.objects.all()\r\n    serializer_class = LostItemSerializer\r\n\r\nclass LostItemDetailsView(generics.RetrieveUpdateDestroyAPIView):\r\n    queryset = LostItem.objects.all()\r\n    serializer_class = LostItemSerializer\r\n\r\n\r\nclass LostPersonView(generics.ListCreateAPIView):\r\n    queryset = LostPerson.objects.all()\r\n    serializer_class = LostPersonSerializer\r\n    def post(self, request):\r\n        serializer = self.serializer_class(data=request.data)\r\n        if serializer.is_valid():\r\n            serializer.save()\r\n            return Response(serializer.data, status=status.HTTP_204_NO_CONTENT)\r\n\r\n        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)\r\n\r\nclass LostPersonDetailsView(generics.RetrieveUpdateDestroyAPIView):\r\n    queryset = LostPerson.objects.all()\r\n    serializer_class = LostPersonSerializer\r\n\r\n\r\nclass LostPersonImageView(generics.ListCreateAPIView):\r\n    queryset = LostPersonImage.objects.all()\r\n    serializer_class = LostPersonImageSerializer\r\n\r\nclass LostPersonImageDetailsView(generics.RetrieveUpdateDestroyAPIView):\r\n    queryset = LostPersonImage.objects.all()\r\n    serializer_class = LostPersonImageSerializer\r\n\r\n\r\nclass FoundObjectView(generics.ListCreateAPIView):\r\n    queryset = FoundObject.objects.all()\r\n    serializer_class = FoundObjectSerializer\r\n\r\nclass FoundObjectDetalisView(generics.RetrieveUpdateDestroyAPIView):\r\n    queryset = FoundObject.objects.all()\r\n    serializer_class = FoundObjectSerializer\r\n\r\n\r\nclass FoundItemView(generics.ListCreateAPIView):\r\n    queryset = FoundItem.objects.all()\r\n    serializer_class = FoundItemSerializer\r\n\r\nclass FoundItemDetailsView(generics.RetrieveUpdateDestroyAPIView):\r\n    queryset = FoundItem.objects.all()\r\n    serializer_class = FoundItemSerializer\r\n\r\n\r\nclass FoundPersonView(generics.ListCreateAPIView):\r\n    queryset = FoundPerson.objects.all()\r\n    serializer_class = FoundPersonSerializer\r\n\r\n\r\nclass FoundPersonImageView(generics.ListCreateAPIView):\r\n    queryset = FoundPersonImage.objects.all()\r\n    serializer_class = FoundPersonImageSerializer\r\n\r\n\r\nclass LostObject_cityView(generics.ListAPIView):\r\n    serializer_class = LostObjectSerializer\r\n\r\n    def get_queryset(self):\r\n        obj = self.kwargs['city']\r\n        return LostObject.objects.filter(city=obj)\r\n\r\n\r\nclass MapView(generics.ListAPIView):\r\n    queryset = FoundItem.objects.select_related('id')\r\n    serializer_class = MapSerializer\r\n    \r\n#@api_view()\r\n#def comp_lost_itemView(request,pk):\r\n
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- backend/find_losts/views.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/find_losts/views.py	(date 1621860000816)
@@ -12,6 +12,7 @@
 from rest_framework import status
 from rest_framework import viewsets
 from rest_framework import permissions
+from rest_framework.parsers import MultiPartParser, FormParser
 
 # Create your views here.
 class LostObjectView(generics.ListCreateAPIView):
@@ -24,9 +25,20 @@
     serializer_class = LostObjectSerializer
 
 
-class LostItemView(generics.ListCreateAPIView):
+class LostItemView(generics.GenericAPIView):
     queryset = LostItem.objects.all()
     serializer_class = LostItemSerializer
+    parser_classes = (MultiPartParser, FormParser)
+
+    def create(self, request):
+        print(request.data)
+        serializer = self.get_serializer(data=request.data)
+        if serializer.is_valid():
+            serializer.save()
+            return Response(serializer.data, status=status.HTTP_201_CREATED)
+
+        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
+
 
 class LostItemDetailsView(generics.RetrieveUpdateDestroyAPIView):
     queryset = LostItem.objects.all()
@@ -34,15 +46,10 @@
 
 
 class LostPersonView(generics.ListCreateAPIView):
+    http_method_names = ['post']
     queryset = LostPerson.objects.all()
     serializer_class = LostPersonSerializer
-    def post(self, request):
-        serializer = self.serializer_class(data=request.data)
-        if serializer.is_valid():
-            serializer.save()
-            return Response(serializer.data, status=status.HTTP_204_NO_CONTENT)
 
-        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
 
 class LostPersonDetailsView(generics.RetrieveUpdateDestroyAPIView):
     queryset = LostPerson.objects.all()
@@ -77,6 +84,7 @@
 
 
 class FoundPersonView(generics.ListCreateAPIView):
+    http_method_names = ['post']
     queryset = FoundPerson.objects.all()
     serializer_class = FoundPersonSerializer
 
@@ -86,17 +94,6 @@
     serializer_class = FoundPersonImageSerializer
 
 
-class LostObject_cityView(generics.ListAPIView):
-    serializer_class = LostObjectSerializer
-
-    def get_queryset(self):
-        obj = self.kwargs['city']
-        return LostObject.objects.filter(city=obj)
-
-
 class MapView(generics.ListAPIView):
     queryset = FoundItem.objects.select_related('id')
     serializer_class = MapSerializer
-    
-#@api_view()
-#def comp_lost_itemView(request,pk):
Index: backend/user_account/views.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+>from rest_framework import generics\r\nfrom rest_framework import status\r\nfrom rest_framework.generics import GenericAPIView\r\nfrom rest_framework.permissions import IsAuthenticated\r\nfrom rest_framework.response import Response\r\nfrom rest_framework.views import APIView\r\nfrom .serializers import SignupSerializer, LogoutSerializer, WhoFoundItemSerializer\r\nfrom .models import User\r\nfrom find_losts.models import LostObject, FoundObject\r\n\r\n# Create your views here.\r\n\r\n\r\nclass SignupView(generics.CreateAPIView):\r\n    serializer_class = SignupSerializer\r\n\r\n\r\nclass LoginView(APIView):\r\n    permission_classes = [IsAuthenticated]\r\n\r\n    def post(self, request):\r\n        user = request.user\r\n        user_pic = \"\"\r\n        losts = list(LostObject.objects.filter(user_id=user.pk).values('id'))\r\n        founds = list(FoundObject.objects.filter(user_id=user.pk).values('id'))\r\n        if user.profile_pic is not None:\r\n            user_pic = user.profile_pic.url\r\n        response = {\r\n            'id': user.pk,\r\n            'username': user.first_name,\r\n            'email': user.username,\r\n            'phone': user.phone,\r\n            'city': user.city,\r\n            'birthdate': user.birthdate,\r\n            'profile_pic': user_pic,\r\n            'losts': losts,\r\n            'founds': founds\r\n        }\r\n        return Response({'user': response}, status=status.HTTP_200_OK)\r\n\r\n\r\nclass LogoutView(GenericAPIView):\r\n    serializer_class = LogoutSerializer\r\n    permission_classes = {IsAuthenticated, }\r\n\r\n    def post(self, request):\r\n        serializer = self.serializer_class(data=request.data)\r\n        if serializer.is_valid():\r\n            serializer.save()\r\n            return Response(serializer.data, status=status.HTTP_204_NO_CONTENT)\r\n\r\n        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)\r\n\r\n\r\nclass WhoFoundItemView(generics.RetrieveAPIView):\r\n    queryset = User.objects.all()\r\n    serializer_class = WhoFoundItemSerializer\r\n    lookup_field = 'id'\r\n
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- backend/user_account/views.py	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/user_account/views.py	(date 1621784088894)
@@ -12,6 +12,7 @@
 
 
 class SignupView(generics.CreateAPIView):
+    queryset = User.objects.all()
     serializer_class = SignupSerializer
 
 
@@ -23,7 +24,7 @@
         user_pic = ""
         losts = list(LostObject.objects.filter(user_id=user.pk).values('id'))
         founds = list(FoundObject.objects.filter(user_id=user.pk).values('id'))
-        if user.profile_pic is not None:
+        if user.profile_pic:
             user_pic = user.profile_pic.url
         response = {
             'id': user.pk,
Index: backend/.idea/misc.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+><?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<project version=\"4\">\r\n  <component name=\"ProjectRootManager\" version=\"2\" project-jdk-name=\"Python 3.9 (backend)\" project-jdk-type=\"Python SDK\" />\r\n  <component name=\"PyCharmProfessionalAdvertiser\">\r\n    <option name=\"shown\" value=\"true\" />\r\n  </component>\r\n</project>
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- backend/.idea/misc.xml	(revision bfce80dfbed98c3cdb08a2bc51083229e26cebc2)
+++ backend/.idea/misc.xml	(date 1621778344681)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (backend)" project-jdk-type="Python SDK" />
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (backend)" project-jdk-type="Python SDK" />
   <component name="PyCharmProfessionalAdvertiser">
     <option name="shown" value="true" />
   </component>


================================================
FILE: .idea/vcs.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="VcsDirectoryMappings">
    <mapping directory="" vcs="Git" />
  </component>
</project>

================================================
FILE: README.md
================================================

# The Team
### Team Members
* Team Leader : Esraa Sayed Ahmed
* Team Member 1 : Dina Mishahed Mousa
* Team Member 2 : Abdelrahman Mamdouh Ismail
* Team Member 3 : Ahmed Mostafa Abdelaziz
* Team Member 4 : Walid Mohamed El-Sayed
 
<img src="https://user-images.githubusercontent.com/63111171/131846559-e5a3bbf8-69c1-4bff-b1dd-2e18ef862892.jpg " width="200" height="200"><img src="https://user-images.githubusercontent.com/63111171/131846564-635999dc-df73-4a47-a571-76e5fdc2a082.jpg" width="200" height="200"><img src="https://user-images.githubusercontent.com/63111171/131846565-5ea4b10e-fbec-4ecc-9fc9-cefe2ddf29d1.jpg" width="200" height="200"><img src="https://user-images.githubusercontent.com/63111171/131846567-81d8b676-3200-4d3b-abba-351e9a5fbd8e.jpg" width="200" height="200">

## Problem Statement
The thought of a family member, a friend, or someone else you care about going missing can be terrifying. You don’t know where they are, if they’re hurt or if they need help. When this person lives with a mental health condition, the situation may be even more serious. Also, time required for finding lost person is may be long so, taking action quickly can make a difference.

## Solution
* Steps taken for solving the problem.
<br>First, parents that lose their child will add his/her picture in the application
then If anyone suspects that the child has been kidnapped or lost, he will open the application and the camera and point the camera at the child.
then the application compare between the child's photo and all the lost children's photos. If a match occurs, it will appear to the user that the child has been kidnapped.</br>

* Frameworks/Tools/Technologies stacks used.
<br>We use Pycharm framework(<b>Django</b> framework), <b>face recognition tools</b>, <b>Android Studio</b>, <b>PostgreSQL</b> Database</br>
We used <b>Django</b>  framework :-<br>
Where a lot of libraries are available to help us detect and recongize the faces.<br>
We used <b>PostgreSQL</b> Database :-<br>
Where it is suitable for us to update the data easier than <b>MySQL</b>.<br>
We used <b>Android Studio</b> :-<br>
This project can be converted into an application that anyone can use easily.

## Methodology 
  * Use Case:
 
  ![Screenshot 2021-09-23 165529](https://user-images.githubusercontent.com/63111171/134538337-3451c5cb-f019-4b5e-9f38-5e9d975a4f6a.png)
  * Dataset: <b>TensorFlow</b>.
  * Database: <b>PostgreSQL</b> SQLite.
  * <b>ML Kit</b> for Firebase (For real-time detection)
  * [Face Detection and Recognition Algorithms.docx](https://github.com/abdelrhman-mamdouh/J6_Hackathon_Jefive/files/7219037/Face.Detection.and.Recognition.Algorithms.docx)


## System Architecture proposal (if any)
Explain the following in detail:
  * Mobile Phone device to test our project by <b>Android Studio</b>.
  * ![image](https://user-images.githubusercontent.com/63111171/134538831-76884e8e-fd1b-4ea3-b59b-e95fd5cc43df.png)
  * Before recognizing a face, it is first essential to detect and extract the faces from the original pictures. For recognizing a face, the algorithms compare only faces. Any       other element in the picture that is not part of a face deteriorates the recognition. 

## Screenshots
<img src="https://user-images.githubusercontent.com/63111171/134789100-9c32fcd6-00a8-4ad8-a47e-09eb638842b7.jpg" width="170" height="340"><img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50"><img src="https://user-images.githubusercontent.com/63111171/134789101-c31f7cf4-4113-40b2-9c28-40ada65c0661.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789102-c685bb38-4484-4543-afbf-e169387a00fe.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789103-ac5271ed-bb24-4629-986d-f71e5a25bf87.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789105-caf3fadd-6206-40e3-80d5-66142266ad81.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789106-0854d0ff-a798-45cf-a2fe-6e1ad52062ec.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789110-a40b32a9-bd97-4c78-a9cd-88270eb9320d.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789112-6384f963-d786-49bd-87f3-699bfb7ef6ac.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789113-f19ba47e-c012-4603-9a8b-58b4b6699ab0.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789116-b66d4462-6b08-490e-b3de-0e8a91848274.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789117-d3eeb6a6-d7a7-46cb-8298-bf736bd86b25.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789120-4fc2cb98-ee91-4555-bf60-0180bc2d6cc3.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789121-c67efbd2-14f1-43c6-851b-a90fcdcfd949.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789124-22d3f7c0-b90c-4699-ab4c-2efea9416b48.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789128-9019b6a1-0307-4a95-8da8-4eab471867a6.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789130-577cef6d-2ab3-4703-878e-204ffddba3cb.jpg" width="170" height="340">
<img src="https://user-images.githubusercontent.com/63111171/134789278-b7cf13c5-efca-4abe-b5e8-f1ba46ad0825.png" width="50" height="50">
<img src="https://user-images.githubusercontent.com/63111171/134789131-00d6a30a-3cae-44c2-86a4-270e14a26c1b.jpg" width="170" height="340">




## Step to run the software
* Install <b>Python</b> 3.8.3
* Install <b>Django</b> Framework
* Install <b>face-recognition</b> library
* Install <b>Android Studio</b>
* Download <b>ngrok</b> tool to help you share a app running on your local machine with the world.
* Run app by <b>Android studio</b> and copy <b>ngrok</b> code to good point app.




================================================
FILE: app/.gitignore
================================================
/build

================================================
FILE: app/.idea/workspace.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ChangeListManager">
    <list default="true" id="7b0ef566-3d9b-4a4f-923a-50683c23f896" name="Default Changelist" comment="">
      <change beforePath="$PROJECT_DIR$/../.idea/codeStyles/Project.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../.idea/codeStyles/Project.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../.idea/gradle.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../.idea/gradle.xml" afterDir="false" />
    </list>
    <option name="SHOW_DIALOG" value="false" />
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
    <option name="LAST_RESOLUTION" value="IGNORE" />
  </component>
  <component name="ExternalProjectsManager">
    <system id="GRADLE">
      <state>
        <projects_view />
      </state>
    </system>
  </component>
  <component name="Git.Settings">
    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
  </component>
  <component name="IgnoredFileRootStore">
    <option name="generatedRoots">
      <set>
        <option value="C:\Users\dinam\Documents\GitHub\Good_Point\app\.idea" />
      </set>
    </option>
  </component>
  <component name="ProjectId" id="1lEyMvHuDCZ5bndapBHpFE6CZzs" />
  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
  <component name="ProjectViewState">
    <option name="foldersAlwaysOnTop" value="false" />
    <option name="showLibraryContents" value="true" />
    <option name="showMembers" value="true" />
    <option name="sortByType" value="true" />
  </component>
  <component name="PropertiesComponent">
    <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
    <property name="android.sdk.path" value="$USER_HOME$/AppData/Local/Android/Sdk" />
    <property name="last_opened_file_path" value="$PROJECT_DIR$/.." />
    <property name="settings.editor.selected.configurable" value="AndroidSdkUpdater" />
    <property name="show.migrate.to.gradle.popup" value="false" />
  </component>
  <component name="SvnConfiguration">
    <configuration />
  </component>
  <component name="TaskManager">
    <task active="true" id="Default" summary="Default task">
      <changelist id="7b0ef566-3d9b-4a4f-923a-50683c23f896" name="Default Changelist" comment="" />
      <created>1607176500258</created>
      <option name="number" value="Default" />
      <option name="presentableId" value="Default" />
      <updated>1607176500258</updated>
    </task>
    <servers />
  </component>
  <component name="WindowStateProjectService">
    <state x="580" y="188" key="FileChooserDialogImpl" timestamp="1607176510399">
      <screen x="0" y="0" width="1600" height="860" />
    </state>
    <state x="580" y="188" key="FileChooserDialogImpl/0.0.1600.860@0.0.1600.860" timestamp="1607176510399" />
  </component>
</project>

================================================
FILE: app/build.gradle
================================================
apply plugin: 'com.android.application'
android {
    compileSdkVersion 31
    buildToolsVersion "30.0.1"

    defaultConfig {
        applicationId "com.helloworld.goodpoint"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    aaptOptions {
        noCompress "tflite"
    }
}
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
dependencies {
    implementation platform('com.google.firebase:firebase-bom:28.4.1')
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.github.d-max:spots-dialog:1.1@aar'
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'com.google.android.gms:play-services-maps:17.0.0'
    implementation 'com.google.android.gms:play-services-places:17.0.0'
    implementation 'com.android.support:support-v4:30.0.1'
    implementation 'com.android.support:design:30.0.1'
    implementation 'com.google.android.gms:play-services-location:17.1.0'

    implementation project(path: ':mylibrary')
    implementation 'com.google.firebase:firebase-ml-vision:24.1.0'

    testImplementation 'junit:junit:4.13.1'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    implementation 'com.android.support:support-annotations:28.0.0'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'com.chaos.view:pinview:1.4.3'
    implementation 'androidx.fragment:fragment:1.2.5'
    implementation 'com.github.Shashank02051997:FancyToast-Android:0.1.8'
    //recyclerView
    implementation "androidx.recyclerview:recyclerview:1.1.0"
    // For control over item selection of both touch and mouse driven selection
    implementation "androidx.recyclerview:recyclerview-selection:1.1.0-rc03"
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'com.android.support:design:30.0.0'

    //glide
    implementation 'com.github.bumptech.glide:glide:4.4.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.4.0'

    //sdp and ssp
    implementation 'com.intuit.sdp:sdp-android:1.0.6'
    implementation 'com.intuit.ssp:ssp-android:1.0.6'

    //retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

    //circular image
    implementation 'de.hdodenhof:circleimageview:3.1.0'
    implementation 'com.squareup.retrofit2:converter-scalars:2.1.0'
    //
    implementation "com.android.support:support-core-utils"
    // for camerax
    def camerax_version = '1.1.0-alpha09'
    implementation "androidx.camera:camera-core:${camerax_version}"
    implementation "androidx.camera:camera-camera2:${camerax_version}"
    implementation "androidx.camera:camera-view:1.0.0-alpha29"
    implementation "androidx.camera:camera-lifecycle:${camerax_version}"

    //
    // for google material elements
    implementation 'com.google.android.material:material:1.1.0'
    // added MLKit dependencies for face detector
    implementation 'com.google.mlkit:face-detection:16.1.2'
    implementation 'com.google.mlkit:object-detection-custom:16.3.0'
    implementation 'org.tensorflow:tensorflow-lite:+'
    implementation 'com.google.android.gms:play-services-vision:20.1.3'
}

================================================
FILE: app/google-services.json
================================================
{
  "project_info": {
    "project_number": "311132691163",
    "project_id": "goodpoint-72323",
    "storage_bucket": "goodpoint-72323.appspot.com"
  },
  "client": [
    {
      "client_info": {
        "mobilesdk_app_id": "1:311132691163:android:bbb123fe5d1b460c1b0afe",
        "android_client_info": {
          "package_name": "com.helloworld.goodpoint"
        }
      },
      "oauth_client": [
        {
          "client_id": "311132691163-2i2t19bnloefe5k6dd7u9i10jvvsbejg.apps.googleusercontent.com",
          "client_type": 3
        }
      ],
      "api_key": [
        {
          "current_key": "AIzaSyCVfw7eY2thtJlQHAwMLIXKW6BcpMFOqps"
        }
      ],
      "services": {
        "appinvite_service": {
          "other_platform_oauth_client": [
            {
              "client_id": "311132691163-2i2t19bnloefe5k6dd7u9i10jvvsbejg.apps.googleusercontent.com",
              "client_type": 3
            }
          ]
        }
      }
    }
  ],
  "configuration_version": "1"
}

================================================
FILE: app/proguard-rules.pro
================================================
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

================================================
FILE: app/src/androidTest/java/com/helloworld/goodpoint/ExampleInstrumentedTest.java
================================================
package com.helloworld.goodpoint;

import android.content.Context;

import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;

import org.junit.Test;
import org.junit.runner.RunWith;

import static org.junit.Assert.*;

/**
 * Instrumented test, which will execute on an Android device.
 *
 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 */
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() {
        // Context of the app under test.
        Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
        assertEquals("com.helloworld.goodpoint", appContext.getPackageName());
    }
}

================================================
FILE: app/src/debug/res/values/google_maps_api.xml
================================================
<resources>
    <!--
    TODO: Before you run your application, you need a Google Maps API key.

    To get one, follow this link, follow the directions and press "Create" at the end:

    https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=E1:38:50:EF:7F:4B:1D:9E:89:10:E7:1C:BA:D2:B6:F8:F5:C6:08:39%3Bcom.helloworld.goodpoint.ui

    You can also add your credentials to an existing key, using these values:

    Package name:
    com.helloworld.goodpoint.ui

    SHA-1 certificate fingerprint:
    E1:38:50:EF:7F:4B:1D:9E:89:10:E7:1C:BA:D2:B6:F8:F5:C6:08:39

    Alternatively, follow the directions here:
    https://developers.google.com/maps/documentation/android/start#get-key

    Once you have your key (it starts with "AIza"), replace the "google_maps_key"
    string in this file.
    -->
    <!--<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">AIzaSyB_qsP8AOP_P0MdlPz-48TDaJYjTP3vbjo</string>-->
    <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">AIzaSyDSlxIGBsvMZkpSZTMLnQ8MVKup40YFR6g</string>
</resources>

================================================
FILE: app/src/main/AndroidManifest.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.helloworld.goodpoint">

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

    <meta-data
        android:name="com.google.android.gms.vision.DEPENDENCIES"
        android:value="face" />
    <meta-data
        android:name="com.google.firebase:firebase-ml-vision.DEPENDENCIES"
        android:value="face" />

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission
        android:name="android.permission.INSTANT_APP_FOREGROUND_SERVICE"
        tools:ignore="ProtectedPermissions" />

    <application
        android:name=".App"
        android:allowBackup="true"
        android:icon="@drawable/application_icon2"
        android:label="@string/app_name"
        android:requestLegacyExternalStorage="true"
        android:roundIcon="@drawable/application_icon2"
        android:supportsRtl="false"
        android:theme="@style/AppTheme"
        tools:replace="android:supportsRtl">
        <activity android:name=".ui.ID_cardDetection"
            android:theme="@style/NoActionBar"></activity>

        <receiver
            android:name=".ui.myService.NotificationBroadcast"
            android:directBootAware="true"
            android:enabled="true"
            android:exported="true"
            android:stopWithTask="false"
            tools:targetApi="n">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
                <action android:name="com.helloworld.goodpoint.ui.myService.NotificationBroadcast" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>

        <service
            android:name=".ui.myService.MyService"
            android:enabled="true"
            android:exported="true" />

        <activity
            android:name=".ui.check_registration"
            android:screenOrientation="portrait"
            android:theme="@style/NoActionBar" />
        <activity
            android:name=".ui.NotificationActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name=".ui.forgetPasswordScreens.ForgetPasswordWithPhone"
            android:screenOrientation="portrait"
            android:theme="@style/NoActionBar" />
        <activity
            android:name=".ui.forgetPasswordScreens.VerifiyCode"
            android:screenOrientation="portrait"
            android:theme="@style/NoActionBar" />
        <activity
            android:name=".ui.forgetPasswordScreens.ForgetPassSuccessMessage"
            android:screenOrientation="portrait"
            android:theme="@style/NoActionBar" />
        <activity
            android:name=".ui.forgetPasswordScreens.SetNewPassword"
            android:screenOrientation="portrait"
            android:theme="@style/NoActionBar" />
        <activity
            android:name=".ui.forgetPasswordScreens.MakeSelection"
            android:screenOrientation="portrait"
            android:theme="@style/NoActionBar" />
        <activity android:name=".ui.DetailsActivity" />
        <activity
            android:name=".ui.forgetPasswordScreens.ForgetPasswordWithEmail"
            android:theme="@style/NoActionBar" />
        <activity
            android:name=".ui.candidate.CandidatePage"
            android:theme="@style/NoActionBar" />
        <activity
            android:name=".ui.select_multiple_faces.Selection"
            android:theme="@style/NoActionBar" />
        <activity
            android:name=".ui.test"
            android:theme="@style/NoActionBar" />
        <activity
            android:name=".ui.Alert"
            android:theme="@style/NoActionBar" />
        <activity
            android:name=".ui.WelcomeActivity"
            android:screenOrientation="portrait"
            android:theme="@style/Theme.AppCompat.NoActionBar" />

        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        <meta-data
            android:name="preloaded_fonts"
            android:resource="@array/preloaded_fonts" />

        <activity
            android:name=".ui.lostFoundObject.FoundObjectActivity"
            android:label="@string/FoundItemDetails"
            android:parentActivityName=".ui.HomeActivity"
            android:screenOrientation="portrait">
            <meta-data
                android:name="com.google.android.geo.API_KEY"
                android:value="@string/google_maps_key" />
        </activity>
        <activity
            android:name=".ui.lostFoundObject.LostObjectDetailsActivity"
            android:label="@string/LostItemDetails"
            android:parentActivityName=".ui.HomeActivity"
            android:screenOrientation="portrait" />
        <activity android:name=".ui.ActionActivity" />
        <activity
            android:name=".ui.HomeActivity"
            android:screenOrientation="portrait"
            android:theme="@style/NoActionBar">
            <meta-data
                android:name="com.google.android.geo.API_KEY"
                android:value="@string/google_maps_key" />
        </activity>
        <activity
            android:name=".ui.SignupActivity"
            android:label="@string/Signup"
            android:screenOrientation="portrait" />
        <activity
            android:name=".ui.SigninActivity"
            android:screenOrientation="portrait"
            android:theme="@style/NoActionBar" />
        <activity
            android:name=".ui.MainActivity"
            android:screenOrientation="portrait"
            android:taskAffinity="com.helloworld.ui.MainActivity"
            android:theme="@style/NoActionBar">
            <intent-filter>
                <action android:name=".ui.MainActivity" />
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ui.ExternalActivity"
            android:icon="@drawable/androidicon"
            android:roundIcon="@drawable/androidicon"
            android:taskAffinity="com.helloworld.ui.ExternalActivity">
            <intent-filter>
                <action android:name=".ui.ExternalActivity" />
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".detection.DetectorActivity"
            android:screenOrientation="portrait"
            android:theme="@style/NoActionBar" />
    </application>

</manifest>

================================================
FILE: app/src/main/assets/face_model_v5.tflite
================================================
[File too large to display: 36.8 MB]

================================================
FILE: app/src/main/assets/labelmap.txt
================================================
person
bicycle
car
motorcycle
airplane
bus
train
truck
boat
traffic light
fire hydrant
???
stop sign
parking meter
bench
bird
cat
dog
horse
sheep
cow
elephant
bear
zebra
giraffe
???
backpack
umbrella
???
???
handbag
tie
suitcase
frisbee
skis
snowboard
sports ball
kite
baseball bat
baseball glove
skateboard
surfboard
tennis racket
bottle
???
wine glass
cup
fork
knife
spoon
bowl
banana
apple
sandwich
orange
broccoli
carrot
hot dog
pizza
donut
cake
chair
couch
potted plant
bed
???
dining table
???
???
toilet
???
tv
laptop
mouse
remote
keyboard
cell phone
microwave
oven
toaster
sink
refrigerator
???
book
clock
vase
scissors
teddy bear
hair drier
toothbrush


================================================
FILE: app/src/main/java/com/helloworld/goodpoint/App.java
================================================
package com.helloworld.goodpoint;

import android.app.Application;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources;
import android.os.Build;

import com.helloworld.goodpoint.pojo.User;
import com.helloworld.goodpoint.ui.myService.NotificationBroadcast;

public class App extends Application {
    private static App mInstance;
    private static Resources res;

    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;
        res = getResources();
        IntentFilter filter = new IntentFilter();
        filter.addAction("android.intent.action.BOOT_COMPLETED");
        filter.addAction("android.intent.action.LOCKED_BOOT_COMPLETED");
        filter.addAction("android.intent.action.QUICKBOOT_POWERON");
        filter.addAction("android.intent.action.MY_PACKAGE_REPLACED");
        filter.addAction("com.helloworld.goodpoint.ui.myService.NotificationBroadcast");
        filter.addCategory("android.intent.category.DEFAULT");
        registerReceiver(new NotificationBroadcast(), filter);
    }

    public static App getInstance() {
        return mInstance;
    }

    public static Resources getResourses() {
        return res;
    }

}


================================================
FILE: app/src/main/java/com/helloworld/goodpoint/adapter/MyExpandableListAdapter.java
================================================
package com.helloworld.goodpoint.adapter;

import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;

import com.helloworld.goodpoint.R;

import java.util.List;
import java.util.Map;

public class MyExpandableListAdapter extends BaseExpandableListAdapter {

    private Context context;
    private Map<String, List<String>> objects;
    private List<String> groupList;

    public MyExpandableListAdapter(Context context, List<String> groupList, Map<String, List<String>> objects) {
        this.context = context;
        this.objects = objects;
        this.groupList = groupList;
    }


    @Override
    public int getGroupCount() {
        return objects.size();
    }

    @Override
    public int getChildrenCount(int i) {
        return objects.get(groupList.get(i)).size();
    }

    @Override
    public Object getGroup(int i) {
        return groupList.get(i);
    }

    @Override
    public Object getChild(int i, int i1) {
        return objects.get(groupList.get(i)).get(i1);
    }

    @Override
    public long getGroupId(int i) {
        return i;
    }

    @Override
    public long getChildId(int i, int i1) {
        return i1;
    }

    @Override
    public boolean hasStableIds() {
        return true;
    }

    @Override
    public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
        String group = getGroup(i).toString();
        if(view == null){
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.group_item, null);
        }
        TextView item = view.findViewById(R.id.group);
        item.setTypeface(null, Typeface.BOLD);
        item.setText(group);
        return view;
    }

    @Override
    public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
        String model = getChild(i,i1).toString();
        if (view == null){
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.child_item, null);
        }
        TextView item = view.findViewById(R.id.model);
        item.setText(model);
        return view;
    }

    @Override
    public boolean isChildSelectable(int i, int i1) {
        return true;
    }
}


================================================
FILE: app/src/main/java/com/helloworld/goodpoint/adapter/NotificationListAdapter.java
================================================
package com.helloworld.goodpoint.adapter;

import android.content.Context;
import android.graphics.Color;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.google.gson.JsonObject;
import com.helloworld.goodpoint.R;
import com.helloworld.goodpoint.pojo.NotificationItem;
import com.helloworld.goodpoint.pojo.User;
import com.helloworld.goodpoint.retrofit.ApiClient;
import com.helloworld.goodpoint.retrofit.ApiInterface;
import com.helloworld.goodpoint.ui.PrefManager;

import org.jetbrains.annotations.NotNull;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;

import de.hdodenhof.circleimageview.CircleImageView;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

public class NotificationListAdapter extends ArrayAdapter<NotificationItem> {

    Context context;
    List<NotificationItem> list;
    Locale locale = new Locale("en");

    public NotificationListAdapter(@NonNull Context context, int resource, @NonNull List<NotificationItem> list) {
        super(context, resource, list);
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        View notificationItem = convertView;
        ViewHolder viewHolder;
        final int revposition = list.size()-position-1;

        if(notificationItem == null){
            notificationItem = createItem(parent);
            viewHolder = new ViewHolder(notificationItem);
            notificationItem.setTag(viewHolder);
        }else
            viewHolder = (ViewHolder) notificationItem.getTag();

        if(list.get(revposition).isRead())
            viewHolder.getLayout().setBackgroundColor(Color.WHITE);
        else
            viewHolder.getLayout().setBackgroundColor(context.getResources().getColor(R.color.table_detail));

        setItemDetails(viewHolder,revposition);

        return notificationItem;
    }

    private void setItemDetails(@NotNull ViewHolder viewHolder, int revposition) {
        viewHolder.getTitle().setText(list.get(revposition).getTitle());
        Date date = list.get(revposition).getDate();
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm",locale);
        String date_time = dateFormat.format(date);
        viewHolder.getDate().setText(date_time);
        viewHolder.getDescription().setText(list.get(revposition).getDescription());
        switch (list.get(revposition).getType()){
            case 1:
            case 2:
                viewHolder.getImageView().setImageResource(R.drawable.ic_account_circle);
                break;
            case 3:
                viewHolder.getImageView().setImageResource(R.drawable.ic_baseline_fact_check_24);
                break;
            case 4:
            case 5:
                viewHolder.getImageView().setImageResource(R.drawable.ic_baseline_assignment_turned_in_24);
                break;
        }

        if(!list.get(revposition).isSent()){
            ApiInterface apiInterface = ApiClient.getApiClient(new PrefManager(context).getNGROKLink()).create(ApiInterface.class);
            Call<JsonObject> call = apiInterface.updateSent(list.get(revposition).getId(),true);
            call.enqueue(new Callback<JsonObject>() {
                @Override
                public void onResponse(Call<JsonObject> call, Response<JsonObject> response) {
                    Log.e("TAG", "onResponse: "+response.body());
                }

                @Override
                public void onFailure(Call<JsonObject> call, Throwable t) {
                    Log.e("TAG", "onFailure: "+t.getMessage());
                }
            });
        }
    }

    private View createItem(ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        return inflater.inflate(R.layout.notification_item, parent, false);
    }

    private class ViewHolder{
        private View convertView;
        private TextView title, date, description;
        private CircleImageView imageView;
        private LinearLayout layout;

        public ViewHolder(View view) {
            this.convertView = view;
        }

        public TextView getTitle() {
            if(title == null)
                title = convertView.findViewById(R.id.notification_title);
            return title;
        }

        public TextView getDate() {
            if(date == null)
                date = convertView.findViewById(R.id.notification_date);
            return date;
        }

        public TextView getDescription() {
            if(description == null)
                description = convertView.findViewById(R.id.notification_description);
            return description;
        }

        public CircleImageView getImageView() {
            if(imageView == null)
                imageView = convertView.findViewById(R.id.notification_image);
            return imageView;
        }

        public LinearLayout getLayout() {
            if(layout == null)
                layout = convertView.findViewById(R.id.notification_layout);
            return layout;
        }
    }
}


================================================
FILE: app/src/main/java/com/helloworld/goodpoint/detection/CameraActivity.java
================================================
/*
 * Copyright 2019 The TensorFlow Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.helloworld.goodpoint.detection;

import android.Manifest;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.hardware.Camera;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager;
import android.hardware.camera2.params.StreamConfigurationMap;
import android.media.Image;
import android.media.Image.Plane;
import android.media.ImageReader;
import android.media.ImageReader.OnImageAvailableListener;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Trace;
import android.util.Size;
import android.view.Surface;
import android.view.View;

import android.view.WindowManager;
import android.widget.CompoundButton;
import android.widget.ImageButton;

import android.widget.LinearLayout;

import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SwitchCompat;
import androidx.appcompat.widget.Toolbar;
import com.helloworld.goodpoint.R;
import com.helloworld.goodpoint.detection.env.ImageUtils;
import com.helloworld.goodpoint.detection.env.Logger;


import java.nio.ByteBuffer;

public abstract class CameraActivity extends AppCompatActivity
    implements OnImageAvailableListener,
        Camera.PreviewCallback,
        CompoundButton.OnCheckedChangeListener
       {
  private static final Logger LOGGER = new Logger();

  private static final int PERMISSIONS_REQUEST = 1;

  private static final String PERMISSION_CAMERA = Manifest.permission.CAMERA;
  protected int previewWidth = 0;
  protected int previewHeight = 0;
  private boolean debug = false;
  private Handler handler;
  private HandlerThread handlerThread;
  private boolean useCamera2API;
  private boolean isProcessingFrame = false;
  private byte[][] yuvBytes = new byte[3][];
  private int[] rgbBytes = null;
  private int yRowStride;
  private Runnable postInferenceCallback;
  private Runnable imageConverter;

  private LinearLayout bottomSheetLayout;
  private LinearLayout gestureLayout;
  //private BottomSheetBehavior<LinearLayout> sheetBehavior;
  protected ImageButton Crop;
  private SwitchCompat apiSwitchCompat;
  @Override
  protected void onCreate(final Bundle savedInstanceState) {
    LOGGER.d("onCreate " + this);
    super.onCreate(null);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    setContentView(R.layout.tfe_od_activity_camera);
    Toolbar toolbar = findViewById(R.id.toolbar);
  //  setSupportActionBar(toolbar);
//    getSupportActionBar().setDisplayShowTitleEnabled(false);

    if (hasPermission()) {
      setFragment();
    } else {
      requestPermission();
    }
    Crop = findViewById(R.id.Crop);
    Crop.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        Intent My = new Intent();
        setResult(RESULT_OK,My);
        finish();
      }
    });
  }

  protected int[] getRgbBytes() {
    imageConverter.run();
    return rgbBytes;
  }
  /** Callback for android.hardware.Camera API */
  @Override
  public void onPreviewFrame(final byte[] bytes, final Camera camera) {
    if (isProcessingFrame) {
      LOGGER.w("Dropping frame!");
      return;
    }

    try {
      // Initialize the storage bitmaps once when the resolution is known.
      if (rgbBytes == null) {
        Camera.Size previewSize = camera.getParameters().getPreviewSize();
        previewHeight = previewSize.height;
        previewWidth = previewSize.width;
        rgbBytes = new int[previewWidth * previewHeight];
        onPreviewSizeChosen(new Size(previewSize.width, previewSize.height), 90);
      }
    } catch (final Exception e) {
      LOGGER.e(e, "Exception!");
      return;
    }

    isProcessingFrame = true;
    yuvBytes[0] = bytes;
    yRowStride = previewWidth;

    imageConverter =
        new Runnable() {
          @Override
          public void run() {
            ImageUtils.convertYUV420SPToARGB8888(bytes, previewWidth, previewHeight, rgbBytes);
          }
        };

    postInferenceCallback =
        new Runnable() {
          @Override
          public void run() {
            camera.addCallbackBuffer(bytes);
            isProcessingFrame = false;
          }
        };
    processImage();
  }

  /** Callback for Camera2 API */
  @Override
  public void onImageAvailable(final ImageReader reader) {
    // We need wait until we have some size from onPreviewSizeChosen
    if (previewWidth == 0 || previewHeight == 0) {
      return;
    }
    if (rgbBytes == null) {
      rgbBytes = new int[previewWidth * previewHeight];
    }
    try {
      final Image image = reader.acquireLatestImage();
      if (image == null) {
        return;
      }

      if (isProcessingFrame) {
        image.close();
        return;
      }
      isProcessingFrame = true;
      Trace.beginSection("imageAvailable");
      final Plane[] planes = image.getPlanes();
      fillBytes(planes, yuvBytes);
      yRowStride = planes[0].getRowStride();
      final int uvRowStride = planes[1].getRowStride();
      final int uvPixelStride = planes[1].getPixelStride();

      imageConverter =
          new Runnable() {
            @Override
            public void run() {
              ImageUtils.convertYUV420ToARGB8888(
                  yuvBytes[0],
                  yuvBytes[1],
                  yuvBytes[2],
                  previewWidth,
                  previewHeight,
                  yRowStride,
                  uvRowStride,
                  uvPixelStride,
                  rgbBytes);
            }
          };

      postInferenceCallback =
          new Runnable() {
            @Override
            public void run() {
              image.close();
              isProcessingFrame = false;
            }
          };

      processImage();
    } catch (final Exception e) {
      LOGGER.e(e, "Exception!");
      Trace.endSection();
      return;
    }
    Trace.endSection();
  }

  @Override
  public synchronized void onStart() {
    LOGGER.d("onStart " + this);
    super.onStart();
  }

  @Override
  public synchronized void onResume() {
    LOGGER.d("onResume " + this);
    super.onResume();

    handlerThread = new HandlerThread("inference");
    handlerThread.start();
    handler = new Handler(handlerThread.getLooper());
  }

  @Override
  public synchronized void onPause() {
    LOGGER.d("onPause " + this);

    handlerThread.quitSafely();
    try {
      handlerThread.join();
      handlerThread = null;
      handler = null;
    } catch (final InterruptedException e) {
      LOGGER.e(e, "Exception!");
    }

    super.onPause();
  }

  @Override
  public synchronized void onStop() {
    LOGGER.d("onStop " + this);
    super.onStop();
  }

  @Override
  public synchronized void onDestroy() {
    LOGGER.d("onDestroy " + this);
    super.onDestroy();
  }

  protected synchronized void runInBackground(final Runnable r) {
    if (handler != null) {
      handler.post(r);
    }
  }

  @Override
  public void onRequestPermissionsResult(
          final int requestCode, final String[] permissions, final int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (requestCode == PERMISSIONS_REQUEST) {
      if (allPermissionsGranted(grantResults)) {
        setFragment();
      } else {
        requestPermission();
      }
    }
  }

  private static boolean allPermissionsGranted(final int[] grantResults) {
    for (int result : grantResults) {
      if (result != PackageManager.PERMISSION_GRANTED) {
        return false;
      }
    }
    return true;
  }

  private boolean hasPermission() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
      return checkSelfPermission(PERMISSION_CAMERA) == PackageManager.PERMISSION_GRANTED;
    } else {
      return true;
    }
  }

  private void requestPermission() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
      if (shouldShowRequestPermissionRationale(PERMISSION_CAMERA)) {
        Toast.makeText(
                CameraActivity.this,
                "Camera permission is required for this demo",
                Toast.LENGTH_LONG)
            .show();
      }
      requestPermissions(new String[] {PERMISSION_CAMERA}, PERMISSIONS_REQUEST);
    }
  }

  // Returns true if the device supports the required hardware level, or better.
  private boolean isHardwareLevelSupported(
          CameraCharacteristics characteristics, int requiredLevel) {
    int deviceLevel = characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL);
    if (deviceLevel == CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY) {
      return requiredLevel == deviceLevel;
    }
    // deviceLevel is not LEGACY, can use numerical sort
    return requiredLevel <= deviceLevel;
  }

  private String chooseCamera() {
    final CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
    try {
      for (final String cameraId : manager.getCameraIdList()) {
        final CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId);

        // We don't use a front facing camera in this sample.
        final Integer facing = characteristics.get(CameraCharacteristics.LENS_FACING);
        if (facing != null && facing == CameraCharacteristics.LENS_FACING_FRONT) {
          continue;
        }

        final StreamConfigurationMap map =
            characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);

        if (map == null) {
          continue;
        }

        // Fallback to camera1 API for internal cameras that don't have full support.
        // This should help with legacy situations where using the camera2 API causes
        // distorted or otherwise broken previews.
        useCamera2API =
            (facing == CameraCharacteristics.LENS_FACING_EXTERNAL)
                || isHardwareLevelSupported(
                    characteristics, CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL);
        LOGGER.i("Camera API lv2?: %s", useCamera2API);
        return cameraId;
      }
    } catch (CameraAccessException e) {
      LOGGER.e(e, "Not allowed to access camera");
    }

    return null;
  }

  protected void setFragment() {
    String cameraId = chooseCamera();

    Fragment fragment;
    if (useCamera2API) {
      CameraConnectionFragment camera2Fragment =
          CameraConnectionFragment.newInstance(
              new CameraConnectionFragment.ConnectionCallback() {
                @Override
                public void onPreviewSizeChosen(final Size size, final int rotation) {
                  previewHeight = size.getHeight();
                  previewWidth = size.getWidth();
                  CameraActivity.this.onPreviewSizeChosen(size, rotation);
                }
              },
              this,
              getLayoutId(),
              getDesiredPreviewFrameSize());

      camera2Fragment.setCamera(cameraId);
      fragment = camera2Fragment;
    } else {
      fragment =
          new LegacyCameraConnectionFragment(this, getLayoutId(), getDesiredPreviewFrameSize());
    }

    getFragmentManager().beginTransaction().replace(R.id.container, fragment).commit();
  }

  protected void fillBytes(final Plane[] planes, final byte[][] yuvBytes) {
    // Because of the variable row stride it's not possible to know in
    // advance the actual necessary dimensions of the yuv planes.
    for (int i = 0; i < planes.length; ++i) {
      final ByteBuffer buffer = planes[i].getBuffer();
      if (yuvBytes[i] == null) {
        LOGGER.d("Initializing buffer %d at size %d", i, buffer.capacity());
        yuvBytes[i] = new byte[buffer.capacity()];
      }
      buffer.get(yuvBytes[i]);
    }
  }

  public boolean isDebug() {
    return debug;
  }

  protected void readyForNextImage() {
    if (postInferenceCallback != null) {
      postInferenceCallback.run();
    }
  }

  protected int getScreenOrientation() {
    switch (getWindowManager().getDefaultDisplay().getRotation()) {
      case Surface.ROTATION_270:
        return 270;
      case Surface.ROTATION_180:
        return 180;
      case Surface.ROTATION_90:
        return 90;
      default:
        return 0;
    }
  }

  @Override
  public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    setUseNNAPI(isChecked);
    if (isChecked) apiSwitchCompat.setText("NNAPI");
    else apiSwitchCompat.setText("TFLITE");
  }
  protected abstract void processImage();

  protected abstract void onPreviewSizeChosen(final Size size, final int rotation);

  protected abstract int getLayoutId();

  protected abstract Size getDesiredPreviewFrameSize();

  protected abstract void setNumThreads(int numThreads);

  protected abstract void setUseNNAPI(boolean isChecked);
}


================================================
FILE: app/src/main/java/com/helloworld/goodpoint/detection/CameraConnectionFragment.java
================================================
/*
 * Copyright 2019 The TensorFlow Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.or
Download .txt
gitextract_2l0lu64v/

├── .gitignore
├── .idea/
│   ├── .name
│   ├── codeStyles/
│   │   └── Project.xml
│   ├── compiler.xml
│   ├── gradle.xml
│   ├── jarRepositories.xml
│   ├── misc.xml
│   ├── render.experimental.xml
│   ├── runConfigurations.xml
│   ├── shelf/
│   │   ├── Uncommitted_changes_before_Update_at_2_13_2021_11_27_PM_[Default_Changelist]/
│   │   │   └── shelved.patch
│   │   ├── Uncommitted_changes_before_Update_at_2_13_2021_11_27_PM__Default_Changelist_.xml
│   │   └── Uncommitted_changes_before_Update_at_5_26_2021_1_21_AM_[Default_Changelist]/
│   │       └── shelved.patch
│   └── vcs.xml
├── README.md
├── app/
│   ├── .gitignore
│   ├── .idea/
│   │   └── workspace.xml
│   ├── build.gradle
│   ├── google-services.json
│   ├── proguard-rules.pro
│   └── src/
│       ├── androidTest/
│       │   └── java/
│       │       └── com/
│       │           └── helloworld/
│       │               └── goodpoint/
│       │                   └── ExampleInstrumentedTest.java
│       ├── debug/
│       │   └── res/
│       │       └── values/
│       │           └── google_maps_api.xml
│       ├── main/
│       │   ├── AndroidManifest.xml
│       │   ├── assets/
│       │   │   ├── detect.tflite
│       │   │   ├── face_model_v5.tflite
│       │   │   ├── labelmap.txt
│       │   │   └── objectDetection.tflite
│       │   ├── java/
│       │   │   ├── com/
│       │   │   │   └── helloworld/
│       │   │   │       └── goodpoint/
│       │   │   │           ├── App.java
│       │   │   │           ├── adapter/
│       │   │   │           │   ├── MyExpandableListAdapter.java
│       │   │   │           │   └── NotificationListAdapter.java
│       │   │   │           ├── detection/
│       │   │   │           │   ├── CameraActivity.java
│       │   │   │           │   ├── CameraConnectionFragment.java
│       │   │   │           │   ├── DetectorActivity.java
│       │   │   │           │   ├── LegacyCameraConnectionFragment.java
│       │   │   │           │   ├── customview/
│       │   │   │           │   │   ├── AutoFitTextureView.java
│       │   │   │           │   │   ├── OverlayView.java
│       │   │   │           │   │   ├── RecognitionScoreView.java
│       │   │   │           │   │   └── ResultsView.java
│       │   │   │           │   ├── env/
│       │   │   │           │   │   ├── BorderedText.java
│       │   │   │           │   │   ├── ImageUtils.java
│       │   │   │           │   │   ├── Logger.java
│       │   │   │           │   │   └── Size.java
│       │   │   │           │   └── tracking/
│       │   │   │           │       └── MultiBoxTracker.java
│       │   │   │           ├── pojo/
│       │   │   │           │   ├── FoundItem.java
│       │   │   │           │   ├── FoundPerson.java
│       │   │   │           │   ├── LostItem.java
│       │   │   │           │   ├── LostObject.java
│       │   │   │           │   ├── LostPerson.java
│       │   │   │           │   ├── NotificationItem.java
│       │   │   │           │   ├── ObjectLocation.java
│       │   │   │           │   ├── RegUser.java
│       │   │   │           │   ├── Token.java
│       │   │   │           │   ├── User.java
│       │   │   │           │   └── UserMap.java
│       │   │   │           ├── retrofit/
│       │   │   │           │   ├── ApiClient.java
│       │   │   │           │   ├── ApiInterface.java
│       │   │   │           │   └── Decode.java
│       │   │   │           ├── ui/
│       │   │   │           │   ├── ActionActivity.java
│       │   │   │           │   ├── AdapterOfMatchFragment.java
│       │   │   │           │   ├── Alert.java
│       │   │   │           │   ├── DetailsActivity.java
│       │   │   │           │   ├── ExternalActivity.java
│       │   │   │           │   ├── FoundMapFragment.java
│       │   │   │           │   ├── GlobalVar.java
│       │   │   │           │   ├── HomeActivity.java
│       │   │   │           │   ├── HomeFragment.java
│       │   │   │           │   ├── ID_cardDetection.java
│       │   │   │           │   ├── IdCard.java
│       │   │   │           │   ├── MainActivity.java
│       │   │   │           │   ├── MatchFragment.java
│       │   │   │           │   ├── NotificationActivity.java
│       │   │   │           │   ├── PrefManager.java
│       │   │   │           │   ├── ProfileFragment.java
│       │   │   │           │   ├── SigninActivity.java
│       │   │   │           │   ├── SignupActivity.java
│       │   │   │           │   ├── SlideAdapter.java
│       │   │   │           │   ├── WelcomeActivity.java
│       │   │   │           │   ├── candidate/
│       │   │   │           │   │   ├── CandidatePage.java
│       │   │   │           │   │   ├── Item.java
│       │   │   │           │   │   ├── ItemAdapter.java
│       │   │   │           │   │   ├── SubItem.java
│       │   │   │           │   │   ├── SubItemAdapter.java
│       │   │   │           │   │   └── lostitem.java
│       │   │   │           │   ├── check_registration.java
│       │   │   │           │   ├── forgetPasswordScreens/
│       │   │   │           │   │   ├── ForgetPassSuccessMessage.java
│       │   │   │           │   │   ├── ForgetPasswordWithEmail.java
│       │   │   │           │   │   ├── ForgetPasswordWithPhone.java
│       │   │   │           │   │   ├── MakeSelection.java
│       │   │   │           │   │   ├── SetNewPassword.java
│       │   │   │           │   │   └── VerifiyCode.java
│       │   │   │           │   ├── lostFoundObject/
│       │   │   │           │   │   ├── FoundObjectActivity.java
│       │   │   │           │   │   ├── LostObjectDetailsActivity.java
│       │   │   │           │   │   ├── ObjectFragment.java
│       │   │   │           │   │   ├── PersonFragment.java
│       │   │   │           │   │   └── objectDataType.java
│       │   │   │           │   ├── myService/
│       │   │   │           │   │   ├── MyService.java
│       │   │   │           │   │   └── NotificationBroadcast.java
│       │   │   │           │   ├── prepareList.java
│       │   │   │           │   ├── select_multiple_faces/
│       │   │   │           │   │   ├── ItemList.java
│       │   │   │           │   │   ├── ItemListAdapter.java
│       │   │   │           │   │   ├── Selection.java
│       │   │   │           │   │   ├── SubItemList.java
│       │   │   │           │   │   └── SubItemListAdapter.java
│       │   │   │           │   ├── sub.java
│       │   │   │           │   ├── subAdapter.java
│       │   │   │           │   └── test.java
│       │   │   │           └── utils/
│       │   │   │               └── Draw.java
│       │   │   └── fragments/
│       │   │       ├── PageFragment1.java
│       │   │       ├── PageFragment2.java
│       │   │       └── PageFragment3.java
│       │   └── res/
│       │       ├── anim/
│       │       │   └── rotate_splash.xml
│       │       ├── drawable/
│       │       │   ├── account_circle.xml
│       │       │   ├── active_dot.xml
│       │       │   ├── add_new_photo2.xml
│       │       │   ├── application_icon.xml
│       │       │   ├── application_icon2.xml
│       │       │   ├── background.xml
│       │       │   ├── background2.xml
│       │       │   ├── bottom_sheet_background.xml
│       │       │   ├── btn_login.xml
│       │       │   ├── buttons.xml
│       │       │   ├── circle.xml
│       │       │   ├── circle2.xml
│       │       │   ├── custom_button.xml
│       │       │   ├── custom_button_location.xml
│       │       │   ├── default_dot.xml
│       │       │   ├── details_background.xml
│       │       │   ├── details_btns.xml
│       │       │   ├── general_back_icon.xml
│       │       │   ├── halfcircle.xml
│       │       │   ├── ic_account_circle.xml
│       │       │   ├── ic_add.xml
│       │       │   ├── ic_background.xml
│       │       │   ├── ic_baseline_account_circle_150.xml
│       │       │   ├── ic_baseline_account_circle_24.xml
│       │       │   ├── ic_baseline_add_a_photo_24.xml
│       │       │   ├── ic_baseline_archive_24.xml
│       │       │   ├── ic_baseline_assignment_turned_in_24.xml
│       │       │   ├── ic_baseline_business_center_24.xml
│       │       │   ├── ic_baseline_check_24.xml
│       │       │   ├── ic_baseline_check_circle_24.xml
│       │       │   ├── ic_baseline_date_range_24.xml
│       │       │   ├── ic_baseline_email_24.xml
│       │       │   ├── ic_baseline_exit_to_app_24.xml
│       │       │   ├── ic_baseline_fact_check_24.xml
│       │       │   ├── ic_baseline_feedback_24.xml
│       │       │   ├── ic_baseline_gallery_24.xml
│       │       │   ├── ic_baseline_help_24.xml
│       │       │   ├── ic_baseline_location_on_24.xml
│       │       │   ├── ic_baseline_location_on_241.xml
│       │       │   ├── ic_baseline_location_on_242.xml
│       │       │   ├── ic_baseline_location_on_243.xml
│       │       │   ├── ic_baseline_lock_24.xml
│       │       │   ├── ic_baseline_navigate_next_24.xml
│       │       │   ├── ic_baseline_notifications_24.xml
│       │       │   ├── ic_baseline_person_24.xml
│       │       │   ├── ic_baseline_phone_android_24.xml
│       │       │   ├── ic_baseline_photo_camera_24.xml
│       │       │   ├── ic_baseline_remove_red_eye_24.xml
│       │       │   ├── ic_baseline_room_24.xml
│       │       │   ├── ic_baseline_search_24.xml
│       │       │   ├── ic_baseline_search_241.xml
│       │       │   ├── ic_baseline_settings_24.xml
│       │       │   ├── ic_baseline_share_24.xml
│       │       │   ├── ic_baseline_star_rate_24.xml
│       │       │   ├── ic_baseline_visibility_24.xml
│       │       │   ├── ic_baseline_visibility_off_24.xml
│       │       │   ├── ic_close.xml
│       │       │   ├── ic_design.xml
│       │       │   ├── ic_done.xml
│       │       │   ├── ic_found.xml
│       │       │   ├── ic_home.xml
│       │       │   ├── ic_home_background.xml
│       │       │   ├── ic_image.xml
│       │       │   ├── ic_launcher_background.xml
│       │       │   ├── ic_launcher_background1.xml
│       │       │   ├── ic_launcher_foreground.xml
│       │       │   ├── ic_location.xml
│       │       │   ├── ic_lock.xml
│       │       │   ├── ic_lost.xml
│       │       │   ├── ic_notification.xml
│       │       │   ├── ic_password.xml
│       │       │   ├── ic_password_reset.xml
│       │       │   ├── ic_photo.xml
│       │       │   ├── ic_prof_pic.xml
│       │       │   ├── ic_profile.xml
│       │       │   ├── ic_realcam.xml
│       │       │   ├── ic_rotat_image.xml
│       │       │   ├── ic_signup.xml
│       │       │   ├── location_signin.xml
│       │       │   ├── nav_head_color.xml
│       │       │   ├── notification_button1.xml
│       │       │   ├── notification_button2.xml
│       │       │   ├── oval.xml
│       │       │   ├── q_circle.xml
│       │       │   ├── radius_expand.xml
│       │       │   ├── show_password.xml
│       │       │   ├── signin_background.xml
│       │       │   ├── switch_icon.xml
│       │       │   ├── wave.xml
│       │       │   └── white_oval.xml
│       │       ├── drawable-mdpi/
│       │       │   └── avd_done.xml
│       │       ├── drawable-v24/
│       │       │   └── ic_launcher_foreground.xml
│       │       ├── drawable-xxxhdpi/
│       │       │   ├── bottom_sheet_bg.xml
│       │       │   ├── ic_baseline_add.xml
│       │       │   ├── ic_baseline_remove.xml
│       │       │   ├── ic_launcher_background.xml
│       │       │   ├── ic_launcher_foreground.xml
│       │       │   └── rectangle.xml
│       │       ├── font/
│       │       │   ├── muli_black.xml
│       │       │   ├── muli_extralight.xml
│       │       │   └── roboto_bold.xml
│       │       ├── layout/
│       │       │   ├── activity_action.xml
│       │       │   ├── activity_candidate_page.xml
│       │       │   ├── activity_check_registration.xml
│       │       │   ├── activity_details.xml
│       │       │   ├── activity_external.xml
│       │       │   ├── activity_forget_pass_success_message.xml
│       │       │   ├── activity_forget_password.xml
│       │       │   ├── activity_forget_password_with_phone.xml
│       │       │   ├── activity_found_object.xml
│       │       │   ├── activity_home.xml
│       │       │   ├── activity_i_d_card_detection.xml
│       │       │   ├── activity_item.xml
│       │       │   ├── activity_lost_object_details.xml
│       │       │   ├── activity_main.xml
│       │       │   ├── activity_make_selection.xml
│       │       │   ├── activity_notification.xml
│       │       │   ├── activity_set_new_password.xml
│       │       │   ├── activity_signin.xml
│       │       │   ├── activity_signup.xml
│       │       │   ├── activity_verifiy_code.xml
│       │       │   ├── activity_welcome.xml
│       │       │   ├── alert.xml
│       │       │   ├── alert_id_card.xml
│       │       │   ├── bottom_sheet_dialog.xml
│       │       │   ├── child_item.xml
│       │       │   ├── custom_map_dialog.xml
│       │       │   ├── fragment_home.xml
│       │       │   ├── fragment_map.xml
│       │       │   ├── fragment_match.xml
│       │       │   ├── fragment_object.xml
│       │       │   ├── fragment_person.xml
│       │       │   ├── fragment_profile.xml
│       │       │   ├── group_item.xml
│       │       │   ├── head_nav.xml
│       │       │   ├── images.xml
│       │       │   ├── images_be_removed.xml
│       │       │   ├── layout_sub_item.xml
│       │       │   ├── layout_sub_list_items.xml
│       │       │   ├── multiple_faces_selection.xml
│       │       │   ├── notification_item.xml
│       │       │   ├── progress_bar_alert.xml
│       │       │   ├── r.xml
│       │       │   ├── recycler_view_of_images.xml
│       │       │   ├── row.xml
│       │       │   ├── rr.xml
│       │       │   ├── slider_page1.xml
│       │       │   ├── slider_page2.xml
│       │       │   ├── slider_page3.xml
│       │       │   ├── spinner_item.xml
│       │       │   ├── tfe_od_activity_camera.xml
│       │       │   └── tfe_od_camera_connection_fragment_tracking.xml
│       │       ├── layout-land/
│       │       │   ├── activity_action.xml
│       │       │   ├── activity_found_object.xml
│       │       │   ├── activity_lost_object_details.xml
│       │       │   ├── activity_main.xml
│       │       │   ├── activity_signin.xml
│       │       │   ├── activity_signup.xml
│       │       │   ├── activity_welcome.xml
│       │       │   ├── fragment_object.xml
│       │       │   ├── fragment_person.xml
│       │       │   ├── fragment_profile.xml
│       │       │   ├── slider_page1.xml
│       │       │   ├── slider_page2.xml
│       │       │   └── slider_page3.xml
│       │       ├── menu/
│       │       │   ├── bottom_nav_menu.xml
│       │       │   ├── choose_location.xml
│       │       │   ├── choose_photo.xml
│       │       │   ├── drawer_menu.xml
│       │       │   ├── home_menu.xml
│       │       │   └── menu_main.xml
│       │       ├── raw/
│       │       │   └── haarcascade_frontalface_alt2.xml
│       │       └── values/
│       │           ├── colors.xml
│       │           ├── font_certs.xml
│       │           ├── preloaded_fonts.xml
│       │           ├── strings.xml
│       │           └── styles.xml
│       ├── release/
│       │   └── res/
│       │       └── values/
│       │           └── google_maps_api.xml
│       └── test/
│           └── java/
│               └── com/
│                   └── helloworld/
│                       └── goodpoint/
│                           └── ExampleUnitTest.java
├── backend/
│   ├── .idea/
│   │   ├── .gitignore
│   │   ├── inspectionProfiles/
│   │   │   └── profiles_settings.xml
│   │   ├── misc.xml
│   │   ├── modules.xml
│   │   └── vcs.xml
│   ├── find_losts/
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── map.txt
│   │   ├── migrations/
│   │   │   ├── 0001_initial.py
│   │   │   ├── 0002_alter_matchedperson_percent.py
│   │   │   └── __init__.py
│   │   ├── models.py
│   │   ├── serializers.py
│   │   ├── tests.py
│   │   ├── url.py
│   │   └── views.py
│   ├── good_point/
│   │   ├── .idea/
│   │   │   ├── .gitignore
│   │   │   ├── inspectionProfiles/
│   │   │   │   └── profiles_settings.xml
│   │   │   ├── misc.xml
│   │   │   ├── modules.xml
│   │   │   ├── vcs.xml
│   │   │   └── workspace.xml
│   │   ├── __init__.py
│   │   ├── asgi.py
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   ├── manage.py
│   ├── notification/
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── migrations/
│   │   │   ├── 0001_initial.py
│   │   │   ├── 0002_notification_user_id.py
│   │   │   └── __init__.py
│   │   ├── models.py
│   │   ├── serializers.py
│   │   ├── tests.py
│   │   ├── url.py
│   │   └── views.py
│   └── user_account/
│       ├── __init__.py
│       ├── admin.py
│       ├── apps.py
│       ├── migrations/
│       │   ├── 0001_initial.py
│       │   └── __init__.py
│       ├── models.py
│       ├── serializers.py
│       ├── tests.py
│       ├── url.py
│       └── views.py
├── build.gradle
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── lib_task_api/
│   ├── .gitignore
│   ├── build.gradle
│   ├── consumer-rules.pro
│   ├── proguard-rules.pro
│   └── src/
│       ├── main/
│       │   ├── AndroidManifest.xml
│       │   └── java/
│       │       └── com/
│       │           └── example/
│       │               └── lib_task_api/
│       │                   ├── Detector.java
│       │                   └── TFLiteObjectDetectionAPIModel.java
│       └── test/
│           └── java/
│               └── com/
│                   └── example/
│                       └── lib_task_api/
│                           └── ExampleUnitTest.java
├── mylibrary/
│   ├── .gitignore
│   ├── build.gradle
│   ├── consumer-rules.pro
│   ├── proguard-rules.pro
│   └── src/
│       ├── main/
│       │   ├── AndroidManifest.xml
│       │   └── java/
│       │       └── com/
│       │           └── example/
│       │               └── lib_task_api/
│       │                   ├── Detector.java
│       │                   └── TFLiteObjectDetectionAPIModel.java
│       └── test/
│           └── java/
│               └── com/
│                   └── example/
│                       └── lib_task_api/
│                           └── ExampleUnitTest.java
└── settings.gradle
Download .txt
SYMBOL INDEX (935 symbols across 110 files)

FILE: app/src/androidTest/java/com/helloworld/goodpoint/ExampleInstrumentedTest.java
  class ExampleInstrumentedTest (line 18) | @RunWith(AndroidJUnit4.class)
    method useAppContext (line 20) | @Test

FILE: app/src/main/java/com/helloworld/goodpoint/App.java
  class App (line 12) | public class App extends Application {
    method onCreate (line 16) | @Override
    method getInstance (line 31) | public static App getInstance() {
    method getResourses (line 35) | public static Resources getResourses() {

FILE: app/src/main/java/com/helloworld/goodpoint/adapter/MyExpandableListAdapter.java
  class MyExpandableListAdapter (line 16) | public class MyExpandableListAdapter extends BaseExpandableListAdapter {
    method MyExpandableListAdapter (line 22) | public MyExpandableListAdapter(Context context, List<String> groupList...
    method getGroupCount (line 29) | @Override
    method getChildrenCount (line 34) | @Override
    method getGroup (line 39) | @Override
    method getChild (line 44) | @Override
    method getGroupId (line 49) | @Override
    method getChildId (line 54) | @Override
    method hasStableIds (line 59) | @Override
    method getGroupView (line 64) | @Override
    method getChildView (line 77) | @Override
    method isChildSelectable (line 89) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/adapter/NotificationListAdapter.java
  class NotificationListAdapter (line 37) | public class NotificationListAdapter extends ArrayAdapter<NotificationIt...
    method NotificationListAdapter (line 43) | public NotificationListAdapter(@NonNull Context context, int resource,...
    method getView (line 49) | @NonNull
    method setItemDetails (line 73) | private void setItemDetails(@NotNull ViewHolder viewHolder, int revpos...
    method createItem (line 111) | private View createItem(ViewGroup parent) {
    class ViewHolder (line 116) | private class ViewHolder{
      method ViewHolder (line 122) | public ViewHolder(View view) {
      method getTitle (line 126) | public TextView getTitle() {
      method getDate (line 132) | public TextView getDate() {
      method getDescription (line 138) | public TextView getDescription() {
      method getImageView (line 144) | public CircleImageView getImageView() {
      method getLayout (line 150) | public LinearLayout getLayout() {

FILE: app/src/main/java/com/helloworld/goodpoint/detection/CameraActivity.java
  class CameraActivity (line 60) | public abstract class CameraActivity extends AppCompatActivity
    method onCreate (line 88) | @Override
    method getRgbBytes (line 115) | protected int[] getRgbBytes() {
    method onPreviewFrame (line 120) | @Override
    method onImageAvailable (line 165) | @Override
    method onStart (line 227) | @Override
    method onResume (line 233) | @Override
    method onPause (line 243) | @Override
    method onStop (line 259) | @Override
    method onDestroy (line 265) | @Override
    method runInBackground (line 271) | protected synchronized void runInBackground(final Runnable r) {
    method onRequestPermissionsResult (line 277) | @Override
    method allPermissionsGranted (line 290) | private static boolean allPermissionsGranted(final int[] grantResults) {
    method hasPermission (line 299) | private boolean hasPermission() {
    method requestPermission (line 307) | private void requestPermission() {
    method isHardwareLevelSupported (line 321) | private boolean isHardwareLevelSupported(
    method chooseCamera (line 331) | private String chooseCamera() {
    method setFragment (line 367) | protected void setFragment() {
    method fillBytes (line 396) | protected void fillBytes(final Plane[] planes, final byte[][] yuvBytes) {
    method isDebug (line 409) | public boolean isDebug() {
    method readyForNextImage (line 413) | protected void readyForNextImage() {
    method getScreenOrientation (line 419) | protected int getScreenOrientation() {
    method onCheckedChanged (line 432) | @Override
    method processImage (line 438) | protected abstract void processImage();
    method onPreviewSizeChosen (line 440) | protected abstract void onPreviewSizeChosen(final Size size, final int...
    method getLayoutId (line 442) | protected abstract int getLayoutId();
    method getDesiredPreviewFrameSize (line 444) | protected abstract Size getDesiredPreviewFrameSize();
    method setNumThreads (line 446) | protected abstract void setNumThreads(int numThreads);
    method setUseNNAPI (line 448) | protected abstract void setUseNNAPI(boolean isChecked);

FILE: app/src/main/java/com/helloworld/goodpoint/detection/CameraConnectionFragment.java
  class CameraConnectionFragment (line 68) | @SuppressLint("ValidFragment")
    method onCaptureProgressed (line 102) | @Override
    method onCaptureCompleted (line 108) | @Override
    method onOpened (line 139) | @Override
    method onDisconnected (line 147) | @Override
    method onError (line 154) | @Override
    method onSurfaceTextureAvailable (line 171) | @Override
    method onSurfaceTextureSizeChanged (line 177) | @Override
    method onSurfaceTextureDestroyed (line 183) | @Override
    method onSurfaceTextureUpdated (line 188) | @Override
    method CameraConnectionFragment (line 192) | private CameraConnectionFragment(
    method chooseOptimalSize (line 212) | protected static Size chooseOptimalSize(final Size[] choices, final in...
    method newInstance (line 253) | public static CameraConnectionFragment newInstance(
    method showToast (line 266) | private void showToast(final String text) {
    method onCreateView (line 279) | @Override
    method onViewCreated (line 285) | @Override
    method onActivityCreated (line 290) | @Override
    method onResume (line 295) | @Override
    method onPause (line 311) | @Override
    method setCamera (line 318) | public void setCamera(String cameraId) {
    method setUpCameraOutputs (line 323) | private void setUpCameraOutputs() {
    method openCamera (line 364) | private void openCamera(final int width, final int height) {
    method closeCamera (line 382) | private void closeCamera() {
    method startBackgroundThread (line 405) | private void startBackgroundThread() {
    method stopBackgroundThread (line 412) | private void stopBackgroundThread() {
    method createCameraPreviewSession (line 424) | private void createCameraPreviewSession() {
    method configureTransform (line 500) | private void configureTransform(final int viewWidth, final int viewHei...
    type ConnectionCallback (line 530) | public interface ConnectionCallback {
      method onPreviewSizeChosen (line 531) | void onPreviewSizeChosen(Size size, int cameraRotation);
    class CompareSizesByArea (line 535) | static class CompareSizesByArea implements Comparator<Size> {
      method compare (line 536) | @Override
    class ErrorDialog (line 545) | public static class ErrorDialog extends DialogFragment {
      method newInstance (line 548) | public static ErrorDialog newInstance(final String message) {
      method onCreateDialog (line 556) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/detection/DetectorActivity.java
  class DetectorActivity (line 67) | public class DetectorActivity extends CameraActivity implements OnImageA...
    method onCreate (line 111) | @Override
    method onPreviewSizeChosen (line 132) | @Override
    method processImage (line 225) | @Override
    method createTransform (line 279) | private Matrix createTransform(
    method onFacesDetected (line 310) | private void onFacesDetected(long currTimestamp, List<Face> faces) {
    method updateResults (line 410) | private void updateResults(long currTimestamp, final List<Detector.Rec...
    method getLayoutId (line 419) | @Override
    method getDesiredPreviewFrameSize (line 424) | @Override
    type DetectorMode (line 430) | private enum DetectorMode {
    method setUseNNAPI (line 434) | @Override
    method setNumThreads (line 450) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/detection/LegacyCameraConnectionFragment.java
  class LegacyCameraConnectionFragment (line 43) | @SuppressLint("ValidFragment")
    method onSurfaceTextureAvailable (line 71) | @Override
    method onSurfaceTextureSizeChanged (line 78) | @Override
    method onSurfaceTextureDestroyed (line 82) | @Override
    method onSurfaceTextureUpdated (line 87) | @Override
    method LegacyCameraConnectionFragment (line 93) | public LegacyCameraConnectionFragment(
    method onCreateView (line 100) | @Override
    method onViewCreated (line 106) | @Override
    method onActivityCreated (line 111) | @Override
    method onResume (line 116) | @Override
    method onPause (line 132) | @Override
    method startBackgroundThread (line 140) | private void startBackgroundThread() {
    method stopBackgroundThread (line 146) | private void stopBackgroundThread() {
    method startCamera (line 156) | private void startCamera() {
    method stopCamera (line 193) | protected void stopCamera() {
    method getCameraId (line 202) | private int getCameraId() {

FILE: app/src/main/java/com/helloworld/goodpoint/detection/customview/AutoFitTextureView.java
  class AutoFitTextureView (line 24) | public class AutoFitTextureView extends TextureView {
    method AutoFitTextureView (line 28) | public AutoFitTextureView(final Context context) {
    method AutoFitTextureView (line 32) | public AutoFitTextureView(final Context context, final AttributeSet at...
    method AutoFitTextureView (line 36) | public AutoFitTextureView(final Context context, final AttributeSet at...
    method setAspectRatio (line 48) | public void setAspectRatio(final int width, final int height) {
    method onMeasure (line 57) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/detection/customview/OverlayView.java
  class OverlayView (line 27) | public class OverlayView extends View {
    method OverlayView (line 30) | public OverlayView(final Context context, final AttributeSet attrs) {
    method addCallback (line 34) | public void addCallback(final DrawCallback callback) {
    method draw (line 38) | @Override
    type DrawCallback (line 47) | public interface DrawCallback {
      method drawCallback (line 48) | public void drawCallback(final Canvas canvas);

FILE: app/src/main/java/com/helloworld/goodpoint/detection/customview/RecognitionScoreView.java
  class RecognitionScoreView (line 27) | public class RecognitionScoreView extends View implements ResultsView {
    method RecognitionScoreView (line 34) | public RecognitionScoreView(final Context context, final AttributeSet ...
    method setResults (line 47) | @Override
    method onDraw (line 53) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/detection/customview/ResultsView.java
  type ResultsView (line 22) | public interface ResultsView {
    method setResults (line 23) | public void setResults(final List<Recognition> results);

FILE: app/src/main/java/com/helloworld/goodpoint/detection/env/BorderedText.java
  class BorderedText (line 29) | public class BorderedText {
    method BorderedText (line 41) | public BorderedText(final float textSize) {
    method BorderedText (line 50) | public BorderedText(final int interiorColor, final int exteriorColor, ...
    method setTypeface (line 69) | public void setTypeface(Typeface typeface) {
    method drawText (line 74) | public void drawText(final Canvas canvas, final float posX, final floa...
    method drawText (line 79) | public void drawText(
    method getTextSize (line 92) | public float getTextSize() {

FILE: app/src/main/java/com/helloworld/goodpoint/detection/env/ImageUtils.java
  class ImageUtils (line 26) | public class ImageUtils {
    method getYUVByteSize (line 38) | public static int getYUVByteSize(final int width, final int height) {
    method saveBitmap (line 54) | public static void saveBitmap(final Bitmap bitmap) {
    method saveBitmap (line 64) | public static void saveBitmap(final Bitmap bitmap, final String filena...
    method convertYUV420SPToARGB8888 (line 89) | public static void convertYUV420SPToARGB8888(byte[] input, int width, ...
    method YUV2RGB (line 108) | private static int YUV2RGB(int y, int u, int v) {
    method convertYUV420ToARGB8888 (line 132) | public static void convertYUV420ToARGB8888(
    method getTransformationMatrix (line 169) | public static Matrix getTransformationMatrix(

FILE: app/src/main/java/com/helloworld/goodpoint/detection/env/Logger.java
  class Logger (line 24) | public final class Logger {
    method Logger (line 47) | public Logger(final Class<?> clazz) {
    method Logger (line 56) | public Logger(final String messagePrefix) {
    method Logger (line 71) | public Logger(final String tag, final String messagePrefix) {
    method Logger (line 78) | public Logger() {
    method Logger (line 83) | public Logger(final int minLogLevel) {
    method getCallerSimpleName (line 100) | private static String getCallerSimpleName() {
    method setMinLogLevel (line 116) | public void setMinLogLevel(final int minLogLevel) {
    method isLoggable (line 120) | public boolean isLoggable(final int logLevel) {
    method toMessage (line 124) | private String toMessage(final String format, final Object... args) {
    method v (line 128) | public void v(final String format, final Object... args) {
    method v (line 134) | public void v(final Throwable t, final String format, final Object... ...
    method d (line 140) | public void d(final String format, final Object... args) {
    method d (line 146) | public void d(final Throwable t, final String format, final Object... ...
    method i (line 152) | public void i(final String format, final Object... args) {
    method i (line 158) | public void i(final Throwable t, final String format, final Object... ...
    method w (line 164) | public void w(final String format, final Object... args) {
    method w (line 170) | public void w(final Throwable t, final String format, final Object... ...
    method e (line 176) | public void e(final String format, final Object... args) {
    method e (line 182) | public void e(final Throwable t, final String format, final Object... ...

FILE: app/src/main/java/com/helloworld/goodpoint/detection/env/Size.java
  class Size (line 26) | public class Size implements Comparable<Size>, Serializable {
    method Size (line 35) | public Size(final int width, final int height) {
    method Size (line 40) | public Size(final Bitmap bmp) {
    method getRotatedSize (line 52) | public static Size getRotatedSize(final Size size, final int rotation) {
    method parseFromString (line 60) | public static Size parseFromString(String sizeString) {
    method sizeStringToList (line 82) | public static List<Size> sizeStringToList(final String sizes) {
    method sizeListToString (line 96) | public static String sizeListToString(final List<Size> sizes) {
    method dimensionsAsString (line 107) | public static final String dimensionsAsString(final int width, final i...
    method aspectRatio (line 111) | public final float aspectRatio() {
    method compareTo (line 115) | @Override
    method equals (line 120) | @Override
    method hashCode (line 134) | @Override
    method toString (line 139) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/detection/tracking/MultiBoxTracker.java
  class MultiBoxTracker (line 42) | public class MultiBoxTracker {
    method MultiBoxTracker (line 74) | public MultiBoxTracker(final Context context) {
    method setFrameConfiguration (line 92) | public synchronized void setFrameConfiguration(
    method drawDebug (line 99) | public synchronized void drawDebug(final Canvas canvas) {
    method trackResults (line 117) | public synchronized void trackResults(final List<Recognition> results,...
    method getFrameToCanvasMatrix (line 122) | private Matrix getFrameToCanvasMatrix() {
    method draw (line 126) | public synchronized void draw(final Canvas canvas) {
    method processResults (line 165) | private void processResults(final List<Recognition> results) {
    class TrackedRecognition (line 213) | private static class TrackedRecognition {

FILE: app/src/main/java/com/helloworld/goodpoint/pojo/FoundItem.java
  class FoundItem (line 6) | public class FoundItem {
    method FoundItem (line 7) | public FoundItem(String type, String serial_number, String brand, Stri...
    method getFoundItem (line 57) | public static FoundItem getFoundItem()
    method FoundItem (line 65) | private FoundItem()
    method getUser_id (line 70) | public String getUser_id() {
    method setUser_id (line 74) | public void setUser_id(String user_id) {
    method getId (line 78) | public String getId() { return id; }
    method setId (line 80) | public void setId(String id) { this.id = id; }
    method setDate (line 82) | public void setDate(String date) {
    method getDate (line 86) | public String getDate() { return date; }
    method getCity (line 88) | public String getCity() {
    method setCity (line 92) | public void setCity(String city) {
    method getType (line 96) | public String getType() {
    method setType (line 100) | public void setType(String type) {
    method getSerial_number (line 104) | public String getSerial_number() {
    method setSerial_number (line 108) | public void setSerial_number(String serial_number) {
    method getBrand (line 112) | public String getBrand() {
    method setBrand (line 116) | public void setBrand(String brand) {
    method getColor (line 120) | public String getColor() {
    method setColor (line 124) | public void setColor(String color) {
    method getDescription (line 128) | public String getDescription() {
    method setDescription (line 132) | public void setDescription(String description) {

FILE: app/src/main/java/com/helloworld/goodpoint/pojo/FoundPerson.java
  class FoundPerson (line 6) | public class FoundPerson {
    method getLongitude (line 19) | public double getLongitude() {
    method setLongitude (line 23) | public void setLongitude(double longitude) {
    method getLatitude (line 27) | public double getLatitude() {
    method setLatitude (line 31) | public void setLatitude(double latitude) {
    method getDate (line 35) | public String getDate() {
    method setDate (line 39) | public void setDate(String date) {
    method getCity (line 43) | public String getCity() {
    method setCity (line 47) | public void setCity(String city) {
    method getFoundPerson (line 53) | public static FoundPerson getFoundPerson()
    method FoundPerson (line 61) | private FoundPerson()
    method getId (line 66) | public String getId() {
    method setId (line 70) | public void setId(String id) {
    method getName (line 74) | public String getName() { return name; }
    method setName (line 76) | public void setName(String name) { this.name = name; }

FILE: app/src/main/java/com/helloworld/goodpoint/pojo/LostItem.java
  class LostItem (line 6) | public class LostItem {
    method LostItem (line 7) | public LostItem(String type, String serial_number, String brand, Strin...
    method LostItem (line 15) | public LostItem(String type, String serial_number, String brand, Strin...
    method getLostItem (line 64) | public static LostItem getLostItem()
    method LostItem (line 72) | private LostItem()
    method getUser_id (line 77) | public String getUser_id() {
    method setUser_id (line 81) | public void setUser_id(String user_id) {
    method getId (line 85) | public String getId() { return id; }
    method setId (line 87) | public void setId(String id) { this.id = id; }
    method setDate (line 89) | public void setDate(String date) {
    method getDate (line 93) | public String getDate() { return date; }
    method getCity (line 95) | public String getCity() {
    method setCity (line 99) | public void setCity(String city) {
    method getType (line 103) | public String getType() {
    method setType (line 107) | public void setType(String type) {
    method getSerial_number (line 111) | public String getSerial_number() {
    method setSerial_number (line 115) | public void setSerial_number(String serial_number) {
    method getBrand (line 119) | public String getBrand() {
    method setBrand (line 123) | public void setBrand(String brand) {
    method getColor (line 127) | public String getColor() {
    method setColor (line 131) | public void setColor(String color) {
    method getDescription (line 135) | public String getDescription() {
    method setDescription (line 139) | public void setDescription(String description) {

FILE: app/src/main/java/com/helloworld/goodpoint/pojo/LostObject.java
  class LostObject (line 6) | public class LostObject {
    method getId (line 16) | public int getId() {
    method setId (line 20) | public void setId(int id) {
    method LostObject (line 31) | public LostObject(String user_id, String date, String city) {
    method getUser_id (line 37) | public String getUser_id() {
    method setUser_id (line 41) | public void setUser_id(String user_id) {
    method getDate (line 45) | public String getDate() {
    method setDate (line 49) | public void setDate(String date) {
    method getCity (line 53) | public String getCity() {
    method setCity (line 57) | public void setCity(String city) {

FILE: app/src/main/java/com/helloworld/goodpoint/pojo/LostPerson.java
  class LostPerson (line 6) | public class LostPerson {
    method getDate (line 17) | public String getDate() {
    method setDate (line 21) | public void setDate(String date) {
    method getCity (line 25) | public String getCity() {
    method setCity (line 29) | public void setCity(String city) {
    method getLostPerson (line 34) | public static LostPerson getLostPerson()
    method LostPerson (line 42) | private LostPerson()
    method getId (line 47) | public String getId() {
    method setId (line 51) | public void setId(String id) {
    method getName (line 55) | public String getName() { return name; }
    method setName (line 57) | public void setName(String name) { this.name = name; }

FILE: app/src/main/java/com/helloworld/goodpoint/pojo/NotificationItem.java
  class NotificationItem (line 11) | public class NotificationItem {
    method getId (line 38) | public String getId() {
    method setId (line 42) | public void setId(String id) {
    method getTitle (line 46) | public String getTitle() {
    method setTitle (line 50) | public void setTitle(String title) {
    method getDescription (line 54) | public String getDescription() {
    method setDescription (line 58) | public void setDescription(String description) {
    method getType (line 62) | public int getType() {
    method setType (line 66) | public void setType(int type) {
    method getDate (line 70) | public Date getDate() {
    method setDate (line 74) | public void setDate(Date date) {
    method isRead (line 78) | public boolean isRead() {
    method setRead (line 82) | public void setRead(boolean read) {
    method getUserId (line 86) | public int getUserId() {
    method setUserId (line 90) | public void setUserId(int userId) {
    method isSent (line 94) | public boolean isSent() {
    method setSent (line 98) | public void setSent(boolean sent) {

FILE: app/src/main/java/com/helloworld/goodpoint/pojo/ObjectLocation.java
  class ObjectLocation (line 7) | public class ObjectLocation {
    method ObjectLocation (line 19) | public ObjectLocation(double longitude, double latitude, int userId) {
    method getUserId (line 24) | public int getUserId() {
    method getLongitude (line 28) | public double getLongitude() {
    method setLongitude (line 32) | public void setLongitude(double longitude) {
    method getLatitude (line 36) | public double getLatitude() {
    method setLatitude (line 40) | public void setLatitude(double latitude) {

FILE: app/src/main/java/com/helloworld/goodpoint/pojo/RegUser.java
  class RegUser (line 6) | public class RegUser {
    method RegUser (line 31) | public RegUser(String username, String password, String first_name, St...
    method getUsername (line 41) | public String getUsername() {
    method setUsername (line 45) | public void setUsername(String username) {
    method getPassword (line 49) | public String getPassword() {
    method setPassword (line 53) | public void setPassword(String password) {
    method getFirst_name (line 57) | public String getFirst_name() {
    method setFirst_name (line 61) | public void setFirst_name(String first_name) {
    method getPhone (line 65) | public String getPhone() {
    method setPhone (line 69) | public void setPhone(String phone) {
    method getCity (line 73) | public String getCity() {
    method setCity (line 77) | public void setCity(String city) {
    method getBirthdate (line 81) | public String getBirthdate() {
    method setBirthdate (line 85) | public void setBirthdate(String birthdate) {

FILE: app/src/main/java/com/helloworld/goodpoint/pojo/Token.java
  class Token (line 6) | public class Token {
    method getToken (line 16) | public static Token getToken(){
    method Token (line 23) | public Token( String refresh, String access) {
    method Token (line 28) | public Token() {
    method getRefresh (line 31) | public String getRefresh() {
    method setRefresh (line 35) | public void setRefresh(String refresh) {
    method getAccess (line 39) | public String getAccess() {
    method setAccess (line 43) | public void setAccess(String access) {

FILE: app/src/main/java/com/helloworld/goodpoint/pojo/User.java
  class User (line 11) | public class User {
    method getUser (line 47) | public static User getUser()
    method userLogout (line 58) | public static void userLogout(){
    method getLosts (line 62) | public List<Integer> getLosts() {
    method getFounds (line 66) | public List<Integer> getFounds() {
    method getId (line 70) | public String getId() {
    method setId (line 74) | public void setId(String id) {
    method getUsername (line 78) | public String getUsername() {
    method setUsername (line 82) | public void setUsername(String username) {
    method getEmail (line 86) | public String getEmail() {
    method setEmail (line 90) | public void setEmail(String email) {
    method getPhone (line 94) | public String getPhone() {
    method setPhone (line 98) | public void setPhone(String phone) {
    method getCity (line 102) | public String getCity() {
    method setCity (line 106) | public void setCity(String city) {
    method getBirthdate (line 110) | public String getBirthdate() {
    method setBirthdate (line 114) | public void setBirthdate(String birthdate) { this.birthdate = birthdat...
    method getProfile_pic (line 116) | public String getProfile_pic() { return profile_pic; }
    method setProfile_pic (line 118) | public void setProfile_pic(String profile_pic) { this.profile_pic = pr...
    method getProfile_bitmap (line 120) | public Bitmap getProfile_bitmap() {
    method setProfile_bitmap (line 124) | public void setProfile_bitmap(Bitmap profile_bitmap) {
    method getId_card_pic (line 128) | public String getId_card_pic() {
    method setId_card_pic (line 132) | public void setId_card_pic(String id_card_pic) {

FILE: app/src/main/java/com/helloworld/goodpoint/pojo/UserMap.java
  class UserMap (line 6) | public class UserMap {
    method UserMap (line 18) | public UserMap(String name, String email, String phone) {
    method getName (line 24) | public String getName() {
    method setName (line 28) | public void setName(String name) {
    method getEmail (line 32) | public String getEmail() {
    method setEmail (line 36) | public void setEmail(String email) {
    method getPhone (line 40) | public String getPhone() {
    method setPhone (line 44) | public void setPhone(String phone) {

FILE: app/src/main/java/com/helloworld/goodpoint/retrofit/ApiClient.java
  class ApiClient (line 9) | public class ApiClient {
    method getApiClient (line 16) | public static Retrofit getApiClient(String link) {

FILE: app/src/main/java/com/helloworld/goodpoint/retrofit/ApiInterface.java
  type ApiInterface (line 30) | public interface ApiInterface {
    method storePost (line 32) | @FormUrlEncoded
    method storePost (line 40) | @Multipart
    method getToken (line 48) | @FormUrlEncoded
    method refresh (line 52) | @FormUrlEncoded
    method getData (line 57) | @POST("auth/signin/")
    method setIdCard (line 60) | @Multipart
    method storeLostObj (line 66) | @FormUrlEncoded
    method storeLostItem (line 70) | @FormUrlEncoded
    method storeLostItem (line 76) | @Multipart
    method storeLostPerson (line 82) | @Multipart
    method storeFoundObj (line 89) | @FormUrlEncoded
    method storeFoundItem (line 94) | @FormUrlEncoded
    method storeFoundPerson (line 100) | @Multipart
    method getPoint (line 107) | @GET("losts/map/")
    method getUserMap (line 110) | @GET("losts/founder/{id}")
    method getObject (line 113) | @GET("losts/lostobject/{id}")
    method getLItem (line 116) | @GET("losts/LostItemFilter/")
    method getLostItem (line 119) | @GET("losts/LostItemFilter/")
    method getLostPerson (line 122) | @GET("losts/lost_person/id={id}/")
    method getFoundPerson (line 125) | @GET("losts/found_person/id={id}/")
    method getFoundItem (line 128) | @GET("losts/FoundItemFilter/")
    method storeNotification (line 133) | @FormUrlEncoded
    method getNotification (line 139) | @GET("notification/user_id={id}/")
    method updateRead (line 142) | @FormUrlEncoded
    method updateSent (line 146) | @FormUrlEncoded
    method getNewNotification (line 150) | @GET("notification/new/{user_id}/")

FILE: app/src/main/java/com/helloworld/goodpoint/retrofit/Decode.java
  class Decode (line 8) | public class Decode {
    method decoded (line 11) | public static String decoded(String JWTEncoded) throws Exception {
    method getJson (line 21) | private static String getJson(String strEncoded) throws UnsupportedEnc...

FILE: app/src/main/java/com/helloworld/goodpoint/ui/ActionActivity.java
  class ActionActivity (line 13) | public class ActionActivity extends AppCompatActivity {
    method onCreate (line 17) | @Override
    method lost_btn (line 26) | public void lost_btn(View v){
    method found_btn (line 30) | public void found_btn(View v){

FILE: app/src/main/java/com/helloworld/goodpoint/ui/AdapterOfMatchFragment.java
  class AdapterOfMatchFragment (line 19) | public class AdapterOfMatchFragment  extends ArrayAdapter<String> {
    method AdapterOfMatchFragment (line 30) | public AdapterOfMatchFragment(@NonNull Context context, String[] Rstat...
    method getView (line 38) | @NonNull
    class viewHolder (line 65) | class viewHolder{
      method viewHolder (line 68) | viewHolder(View v){

FILE: app/src/main/java/com/helloworld/goodpoint/ui/Alert.java
  class Alert (line 14) | public class Alert extends AppCompatActivity {
    method onCreate (line 18) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/DetailsActivity.java
  class DetailsActivity (line 25) | public class DetailsActivity extends AppCompatActivity implements View.O...
    method onCreate (line 35) | @Override
    method updateTable (line 50) | private void updateTable() {
    method init (line 72) | private void init() {
    method marginOrientation (line 100) | private void marginOrientation() {
    method onClick (line 114) | @Override
    method callHim (line 126) | private void callHim() {
    method sendEmail (line 136) | private void sendEmail() {
    method onRequestPermissionsResult (line 146) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/ExternalActivity.java
  class ExternalActivity (line 12) | public class ExternalActivity extends AppCompatActivity {
    method onCreate (line 16) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/FoundMapFragment.java
  class FoundMapFragment (line 66) | public class FoundMapFragment extends Fragment implements GoogleMap.OnMa...
    method onMapReady (line 84) | @SuppressLint("MissingPermission")
    method onCreateView (line 114) | @Nullable
    method onViewCreated (line 123) | @Override
    method locationEnable (line 130) | public boolean locationEnable() {
    method buildAlertMessageNoGps (line 136) | private void buildAlertMessageNoGps() {
    method runGoogleMap (line 155) | private void runGoogleMap() {
    method init (line 209) | private void init() {
    method onRequestPermissionsResult (line 216) | @Override
    method onMarkerClick (line 236) | @Override
    method onClick (line 244) | @Override
    method callHim (line 256) | private void callHim() {
    method sendEmail (line 266) | private void sendEmail() {
    method onActivityResult (line 276) | @Override
    method getPoints (line 286) | public void getPoints()
    method getUserMap (line 306) | public  void getUserMap(int id)

FILE: app/src/main/java/com/helloworld/goodpoint/ui/GlobalVar.java
  class GlobalVar (line 12) | public class GlobalVar {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/HomeActivity.java
  class HomeActivity (line 51) | public class HomeActivity extends AppCompatActivity implements Navigatio...
    method onCreate (line 71) | @Override
    method setBottomNavigator (line 101) | private void setBottomNavigator() {
    method setToolBarAndDrawer (line 114) | private void setToolBarAndDrawer() {
    method init (line 123) | private void init() {
    method onRestart (line 138) | @Override
    method onCreateOptionsMenu (line 145) | @Override
    method onOptionsItemSelected (line 152) | @Override
    method onNavigationItemSelected (line 162) | @Override
    method createDialog (line 191) | private AlertDialog.Builder createDialog(String title, int icon) {
    method onBackPressed (line 213) | @Override
    method showPopup (line 221) | public void showPopup(View v) { //Fab Action
    method onNavigationItemSelected (line 258) | @Override
    method getHomeLosts (line 280) | public void getHomeLosts() {
    method dataIsReady (line 338) | private void dataIsReady() {
    method getHomeFounds (line 343) | public void getHomeFounds() {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/HomeFragment.java
  class HomeFragment (line 27) | public class    HomeFragment extends Fragment {
    method onCreateView (line 41) | @Override
    method createObjects (line 83) | private void createObjects(List<String> itemsL,List<String> itemsF) {
    method loadChild (line 95) | private void loadChild(List<String> AllObjects) {
    method createGroupList (line 105) | private void createGroupList() {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/ID_cardDetection.java
  class ID_cardDetection (line 53) | public class ID_cardDetection extends AppCompatActivity {
    method onCreate (line 60) | @Override
    method bindPreview (line 92) | private void bindPreview(@NonNull ProcessCameraProvider cameraProvider) {
    method check_there (line 171) | public void check_there(View view) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/IdCard.java
  class IdCard (line 9) | public class IdCard extends AppCompatActivity {
    method onCreate (line 11) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/MainActivity.java
  class MainActivity (line 36) | public class MainActivity extends AppCompatActivity {
    method onCreate (line 44) | @Override
    method onResume (line 64) | @Override
    method onPause (line 70) | @Override
    method init (line 76) | private void init() {
    method rotateSplash (line 81) | private void rotateSplash() {
    method startApp (line 86) | private Thread startApp() {
    class DownloadProfilePic (line 177) | class DownloadProfilePic extends AsyncTask<String,Void, Bitmap> {
      method download (line 179) | private Bitmap download(String urlLink) throws IOException {
      method doInBackground (line 197) | @Override
      method onPostExecute (line 208) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/MatchFragment.java
  class MatchFragment (line 20) | public class MatchFragment extends Fragment {
    method MatchFragment (line 37) | public MatchFragment() {
    method newInstance (line 50) | public static MatchFragment newInstance(String param1, String param2) {
    method onCreate (line 59) | @Override
    method onCreateView (line 70) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/NotificationActivity.java
  class NotificationActivity (line 57) | public class NotificationActivity extends AppCompatActivity {
    method onCreate (line 68) | @Override
    method createList (line 77) | private void createList() {
    method showView (line 96) | private void showView() {
    method getImageUri (line 194) | public Uri getImageUri(Bitmap bitmap_Image) {
    method getRealPathFromURI (line 201) | private String getRealPathFromURI(Uri imageUri) {
    method onActivityResult (line 212) | @Override
    method checkVaildIdcard (line 235) | private void checkVaildIdcard() {
    method init (line 318) | private void init() {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/PrefManager.java
  class PrefManager (line 8) | public class PrefManager {
    method PrefManager (line 25) | public PrefManager(Context context) {
    method setFirstTimeLaunch (line 31) | public void setFirstTimeLaunch(boolean isFirstTime) {
    method isFirstTimeLaunch (line 36) | public boolean isFirstTimeLaunch() {
    method setLogin (line 40) | public void setLogin(String token){
    method setLogout (line 45) | public void setLogout(){
    method isLoginned (line 50) | public String isLoginned() {
    method setNGROKLink (line 54) | public void setNGROKLink(String link){
    method getNGROKLink (line 59) | public String getNGROKLink() {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/ProfileFragment.java
  class ProfileFragment (line 25) | public class ProfileFragment extends Fragment {
    method onCreateView (line 28) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/SigninActivity.java
  class SigninActivity (line 44) | public class SigninActivity extends AppCompatActivity implements View.On...
    method onCreate (line 61) | @Override
    method inti (line 72) | protected void inti() {
    method onClick (line 90) | @Override
    method validatePassword (line 107) | private boolean validatePassword() {
    method validateEmail (line 129) | private boolean validateEmail() {
    method validAccount (line 143) | private boolean validAccount() {
    method loginUser (line 150) | public void loginUser(boolean Remember) {
    class DownloadProfilePic (line 233) | class DownloadProfilePic extends AsyncTask<String,Void, Bitmap> {
      method onPreExecute (line 237) | @Override
      method download (line 248) | private Bitmap download(String urlLink) throws IOException {
      method doInBackground (line 266) | @Override
      method onPostExecute (line 276) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/SignupActivity.java
  class SignupActivity (line 59) | public class SignupActivity extends AppCompatActivity {
    method SignupActivity (line 81) | public SignupActivity() {
    method onCreate (line 84) | @Override
    method inti (line 142) | protected void inti() {
    method onCreateContextMenu (line 173) | @Override
    method onContextItemSelected (line 182) | @Override
    method onActivityResult (line 208) | @Override
    method validateEmail (line 227) | private boolean validateEmail() {
    method isAlpha (line 240) | public boolean isAlpha(String name) {
    method validateUsername (line 251) | private boolean validateUsername() {
    method find_Digit (line 271) | private boolean find_Digit(String s){
    method validatePassword (line 282) | private boolean validatePassword() {
    method validateCity (line 302) | private boolean validateCity() {
    method validatePhone (line 315) | private boolean validatePhone() {
    method confirmInput (line 335) | public boolean confirmInput(View v) {
    method prepareList (line 348) | protected void prepareList() {
    method onSaveInstanceState (line 377) | public void onSaveInstanceState(@NonNull Bundle outState)
    method getImageUri (line 383) | public Uri getImageUri(Bitmap bitmap_Image) {
    method getRealPathFromURI (line 391) | private String getRealPathFromURI(Uri imageUri) {
    method registerUser (line 402) | public void registerUser()  {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/SlideAdapter.java
  class SlideAdapter (line 12) | public class SlideAdapter extends FragmentStatePagerAdapter {
    method SlideAdapter (line 15) | public SlideAdapter(FragmentManager fm ,List<Fragment> fragmentList){
    method getItem (line 20) | @Override
    method getCount (line 25) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/WelcomeActivity.java
  class WelcomeActivity (line 25) | public class WelcomeActivity extends AppCompatActivity {
    method onCreate (line 34) | @Override
    method launchHomeScreen (line 110) | private void launchHomeScreen (){
    method getItem (line 116) | private int getItem(int i) {
    method createDots (line 119) | private void createDots(int current_position) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/candidate/CandidatePage.java
  class CandidatePage (line 31) | public class CandidatePage extends AppCompatActivity implements AdapterV...
    method onCreate (line 43) | @Override
    method buildSubItemList (line 86) | private List<com.helloworld.goodpoint.ui.candidate.SubItem> buildSubIt...
    method onItemClick (line 97) | @Override
    method storeCandidatesNotifictation (line 109) | public void storeCandidatesNotifictation(SubItem item) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/candidate/Item.java
  class Item (line 6) | public class Item {
    method getItemTitle (line 11) | public String getItemTitle() {
    method setItemTitle (line 15) | public void setItemTitle(String itemTitle) {
    method getSubItem (line 19) | public List<SubItem> getSubItem() {
    method setSubItem (line 23) | public void setSubItem(List<SubItem> subItem) {
    method Item (line 27) | public Item(String itemTitle, List<SubItem> subItem) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/candidate/ItemAdapter.java
  class ItemAdapter (line 18) | public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.ItemVi...
    method ItemAdapter (line 23) | ItemAdapter(List<com.helloworld.goodpoint.ui.candidate.Item> item,Cont...
    method onCreateViewHolder (line 28) | @NonNull
    method onBindViewHolder (line 35) | @Override
    method getItemCount (line 59) | @Override
    class ItemViewHolder (line 64) | class ItemViewHolder extends RecyclerView.ViewHolder {
      method ItemViewHolder (line 69) | ItemViewHolder(View itemView) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/candidate/SubItem.java
  class SubItem (line 3) | public class SubItem {
    method SubItem (line 10) | public SubItem(String subItemTitle, String subItemDes, String persent,...
    method getSubItemTitle (line 18) | public String getSubItemTitle() {
    method setSubItemTitle (line 22) | public void setSubItemTitle(String subItemTitle) {
    method getSubItemDes (line 26) | public String getSubItemDes() {
    method setSubItemDes (line 30) | public void setSubItemDes(String subItemDes) {
    method getPersent (line 34) | public String getPersent() {
    method setPersent (line 38) | public void setPersent(String persent) {
    method getPos (line 42) | public int getPos() {
    method setPos (line 46) | public void setPos(int pos) {
    method getId (line 50) | public String getId() {
    method setId (line 54) | public void setId(String id) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/candidate/SubItemAdapter.java
  class SubItemAdapter (line 19) | public class SubItemAdapter extends RecyclerView.Adapter<SubItemAdapter....
    method SubItemAdapter (line 27) | SubItemAdapter(List<SubItem> subItem, Context ctx) {
    method onCreateViewHolder (line 32) | @NonNull
    method onBindViewHolder (line 40) | @Override
    method setOnItemClickListener (line 58) | public void setOnItemClickListener(AdapterView.OnItemClickListener onI...
    method onItemHolderClick (line 62) | public void onItemHolderClick(SubItemAdapter.SubItemViewHolder holder) {
    method getItemCount (line 67) | @Override
    class SubItemViewHolder (line 73) | class SubItemViewHolder extends RecyclerView.ViewHolder implements Vie...
      method SubItemViewHolder (line 80) | public SubItemViewHolder(View itemView, final SubItemAdapter mAdapte...
      method bindData (line 91) | public void bindData(SubItem list, int position) {
      method onClick (line 95) | public void onClick(View v){

FILE: app/src/main/java/com/helloworld/goodpoint/ui/candidate/lostitem.java
  class lostitem (line 3) | public class lostitem {
    method lostitem (line 6) | public lostitem(String type, String descriotion) {
    method getType (line 11) | public String getType() {
    method setType (line 15) | public void setType(String type) {
    method getDescriotion (line 19) | public String getDescriotion() {
    method setDescriotion (line 23) | public void setDescriotion(String descriotion) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/check_registration.java
  class check_registration (line 18) | public class check_registration extends AppCompatActivity {
    method onCreate (line 23) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/forgetPasswordScreens/ForgetPassSuccessMessage.java
  class ForgetPassSuccessMessage (line 15) | public class ForgetPassSuccessMessage extends AppCompatActivity {
    method onCreate (line 19) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/forgetPasswordScreens/ForgetPasswordWithEmail.java
  class ForgetPasswordWithEmail (line 15) | public class ForgetPasswordWithEmail extends AppCompatActivity {
    method onCreate (line 20) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/forgetPasswordScreens/ForgetPasswordWithPhone.java
  class ForgetPasswordWithPhone (line 15) | public class ForgetPasswordWithPhone extends AppCompatActivity {
    method onCreate (line 21) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/forgetPasswordScreens/MakeSelection.java
  class MakeSelection (line 13) | public class MakeSelection extends AppCompatActivity {
    method onCreate (line 17) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/forgetPasswordScreens/SetNewPassword.java
  class SetNewPassword (line 24) | public class SetNewPassword extends AppCompatActivity {
    method onCreate (line 42) | @SuppressLint("ClickableViewAccessibility")

FILE: app/src/main/java/com/helloworld/goodpoint/ui/forgetPasswordScreens/VerifiyCode.java
  class VerifiyCode (line 15) | public class VerifiyCode extends AppCompatActivity {
    method onCreate (line 19) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/FoundObjectActivity.java
  class FoundObjectActivity (line 97) | public class FoundObjectActivity extends AppCompatActivity implements Vi...
    method onCreate (line 121) | @Override
    method onStart (line 170) | @Override
    method onClick (line 182) | @Override
    method CheckMatchPerson (line 285) | private boolean CheckMatchPerson() {
    class checkFaces (line 299) | class checkFaces extends AsyncTask<Void, Void, Void> {
      method checkFaces (line 304) | private checkFaces(Context context) {
      method onPreExecute (line 309) | @Override
      method onPostExecute (line 319) | @Override
      method doInBackground (line 340) | @Override
    method CheckMatchObject (line 386) | private boolean CheckMatchObject() {
    method onActivityResult (line 428) | @Override
    method onRequestPermissionsResult (line 443) | @Override
    method getCurrentLocation (line 459) | @SuppressLint("MissingPermission")
    class CurrentLocation (line 500) | class CurrentLocation extends AsyncTask<Void, Void, String> {
      method onPreExecute (line 502) | @Override
      method onPostExecute (line 508) | @Override
      method doInBackground (line 517) | @Override
    method isNetworkAvailable (line 540) | public boolean isNetworkAvailable(Context context) {
    class isInternetAvailable (line 547) | class isInternetAvailable extends AsyncTask<Void, Void, Boolean> {
      method onPreExecute (line 549) | @Override
      method onPostExecute (line 555) | @Override
      method doInBackground (line 563) | @Override
    method inti (line 576) | protected void inti() {
    method getType (line 597) | @Override
    method getImageCheck (line 602) | @Override
    method getBitmap_Image (line 606) | @Override
    method getBitmap_ImagePersonImages (line 610) | @Override
    method onSaveInstanceState (line 616) | @Override
    method FoundItems (line 628) | public void FoundItems() {
    method getImageUri (line 679) | public Uri getImageUri(Bitmap bitmap_Image) {
    method getRealPathFromURI (line 686) | private String getRealPathFromURI(Uri imageUri) {
    method FoundPerson (line 697) | public void FoundPerson()
    method getItems (line 734) | public void getItems(FoundItem item, Context context) {
    method MatchItems (line 763) | public String MatchItems(FoundItem item1, LostItem item2) {
    method storeCandidatesNotifictation (line 776) | public void storeCandidatesNotifictation(){

FILE: app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/LostObjectDetailsActivity.java
  class LostObjectDetailsActivity (line 66) | public class LostObjectDetailsActivity extends AppCompatActivity impleme...
    method onCreate (line 84) | @Override
    method onClick (line 134) | @Override
    method CheckMatchPerson (line 190) | private boolean CheckMatchPerson() {
    method CheckMatchObject (line 211) | private boolean CheckMatchObject() {
    class checkFaces (line 260) | class checkFaces extends AsyncTask<Void, Void, Void> {
      method checkFaces (line 265) | private checkFaces(Context context) {
      method onPreExecute (line 270) | @Override
      method onPostExecute (line 280) | @Override
      method doInBackground (line 296) | @Override
    method getType (line 342) | @Override
    method getImageCheck (line 347) | @Override
    method getBitmap_Image (line 352) | @Override
    method getBitmap_ImagePersonImages (line 357) | @Override
    method inti (line 362) | protected void inti() {
    method onSaveInstanceState (line 384) | @Override
    method getImageUri (line 395) | public Uri getImageUri(Bitmap bitmap_Image) {
    method getRealPathFromURI (line 402) | private String getRealPathFromURI(Uri imageUri) {
    method LostItems (line 413) | public void LostItems() {
    method LostPerson (line 474) | public void LostPerson()  {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/ObjectFragment.java
  class ObjectFragment (line 36) | public class ObjectFragment extends Fragment implements AdapterView.OnIt...
    method onCreate (line 47) | @Override
    method onCreateView (line 61) | @Override
    method onClick (line 103) | @Override
    method onActivityResult (line 120) | @Override
    method onItemSelected (line 137) | @Override
    method onNothingSelected (line 152) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/PersonFragment.java
  class PersonFragment (line 45) | public class PersonFragment extends Fragment implements View.OnClickList...
    method onCreate (line 56) | @Override
    method onCreateView (line 67) | @Override
    method onClick (line 83) | @Override
    method onActivityResult (line 139) | @Override
    class checkIfAllImagesContainFacesOrNot (line 201) | class checkIfAllImagesContainFacesOrNot extends AsyncTask<List<Bitmap>...
      method onPreExecute (line 203) | @Override
      method onPostExecute (line 209) | @Override
      method doInBackground (line 270) | @Override
    method setOnClickListeners (line 302) | private void setOnClickListeners() {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/objectDataType.java
  type objectDataType (line 8) | public interface objectDataType {
    method getType (line 9) | public void getType(String Type);
    method getImageCheck (line 10) | public void getImageCheck(Boolean check);
    method getBitmap_Image (line 11) | public void getBitmap_Image(Bitmap Bitmap_Image);
    method getBitmap_ImagePersonImages (line 12) | public void getBitmap_ImagePersonImages(List<Bitmap> Bitmap_Images);

FILE: app/src/main/java/com/helloworld/goodpoint/ui/myService/MyService.java
  class MyService (line 8) | public class MyService extends Service {
    method MyService (line 9) | public MyService() {
    method onCreate (line 12) | @Override
    method onStartCommand (line 25) | @Override
    method onDestroy (line 31) | @Override
    method onBind (line 37) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/myService/NotificationBroadcast.java
  class NotificationBroadcast (line 42) | public class NotificationBroadcast extends BroadcastReceiver {
    method onReceive (line 47) | @Override
    method newNotification (line 97) | private void newNotification(Context context) {
    method createNotification (line 105) | private void createNotification(Context context, String id, String tit...
    method showNotification (line 130) | private void showNotification(Context context, String id, String title...

FILE: app/src/main/java/com/helloworld/goodpoint/ui/prepareList.java
  class prepareList (line 13) | public class prepareList {
    method prepareList (line 14) | public List<String> prepareList(Context con) {
    method prepareListColor (line 44) | public List<String> prepareListColor(Context con) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/select_multiple_faces/ItemList.java
  class ItemList (line 8) | public class ItemList {
    method ItemList (line 13) | public ItemList(Bitmap ItemImage, List<SubItemList> subItemList) {
    method getSubItemList (line 19) | public List<SubItemList> getSubItemList() {
    method setSubItemList (line 23) | public void setSubItemList(List<SubItemList> subItemList) {
    method getItemImage (line 27) | public Bitmap getItemImage() {
    method setItemImage (line 31) | public void setItemImage(Bitmap itemImage) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/select_multiple_faces/ItemListAdapter.java
  class ItemListAdapter (line 18) | public class ItemListAdapter extends RecyclerView.Adapter<ItemListAdapte...
    method ItemListAdapter (line 23) | ItemListAdapter(List<com.helloworld.goodpoint.ui.select_multiple_faces...
    method onCreateViewHolder (line 28) | @NonNull
    method onBindViewHolder (line 35) | @Override
    method getItemCount (line 59) | @Override
    class ItemViewHolder (line 64) | class ItemViewHolder extends RecyclerView.ViewHolder {
      method ItemViewHolder (line 69) | ItemViewHolder(View itemView) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/select_multiple_faces/Selection.java
  class Selection (line 25) | public class Selection extends AppCompatActivity implements AdapterView....
    method onCreate (line 42) | @Override
    method createCard (line 87) | private void createCard(int i) {
    method buildSubItemList (line 103) | private List<com.helloworld.goodpoint.ui.select_multiple_faces.SubItem...
    method onItemClick (line 114) | @Override

FILE: app/src/main/java/com/helloworld/goodpoint/ui/select_multiple_faces/SubItemList.java
  class SubItemList (line 7) | public class SubItemList implements Serializable {
    method getPos (line 10) | public int getPos() {
    method setPos (line 14) | public void setPos(int pos) {
    method SubItemList (line 21) | public SubItemList(Bitmap subItemImage,int pos) {
    method getSubItemImage (line 27) | public Bitmap getSubItemImage() {
    method setSubItemImage (line 31) | public void setSubItemImage(Bitmap subItemImage) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/select_multiple_faces/SubItemListAdapter.java
  class SubItemListAdapter (line 19) | public class SubItemListAdapter extends RecyclerView.Adapter<SubItemList...
    method SubItemListAdapter (line 26) | SubItemListAdapter(List<SubItemList> subItemList, Context ctx) {
    method onCreateViewHolder (line 31) | @NonNull
    method onBindViewHolder (line 39) | @Override
    method setOnItemClickListener (line 54) | public void setOnItemClickListener(AdapterView.OnItemClickListener onI...
    method onItemHolderClick (line 58) | public void onItemHolderClick(SubItemViewHolder holder) {
    method getItemCount (line 63) | @Override
    class SubItemViewHolder (line 69) | class SubItemViewHolder extends RecyclerView.ViewHolder implements Vie...
      method SubItemViewHolder (line 74) | public SubItemViewHolder(View itemView, final SubItemListAdapter mAd...
      method bindData (line 83) | public void bindData(SubItemList list, int position) {
      method onClick (line 87) | public void onClick(View v){

FILE: app/src/main/java/com/helloworld/goodpoint/ui/sub.java
  class sub (line 7) | public class sub implements Serializable {
    method getPos (line 10) | public int getPos() {
    method setPos (line 14) | public void setPos(int pos) {
    method sub (line 21) | public sub(Bitmap subItemImage,int pos) {
    method getSubItemImage (line 27) | public Bitmap getSubItemImage() {
    method setSubItemImage (line 31) | public void setSubItemImage(Bitmap subItemImage) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/subAdapter.java
  class subAdapter (line 19) | public class subAdapter extends RecyclerView.Adapter<subAdapter.subViewH...
    method subAdapter (line 26) | subAdapter(List<sub> subItemList, Context ctx) {
    method onCreateViewHolder (line 31) | @NonNull
    method onBindViewHolder (line 39) | @Override
    method setOnItemClickListener (line 48) | public void setOnItemClickListener(AdapterView.OnItemClickListener onI...
    method onItemHolderClick (line 52) | public void onItemHolderClick(subViewHolder holder) {
    method getItemCount (line 57) | @Override
    class subViewHolder (line 63) | class subViewHolder extends RecyclerView.ViewHolder {
      method subViewHolder (line 68) | public subViewHolder(View itemView, final subAdapter mAdapter) {

FILE: app/src/main/java/com/helloworld/goodpoint/ui/test.java
  class test (line 46) | public class test extends AppCompatActivity  {
    method onCreate (line 53) | @Override
    method createCard (line 73) | private void createCard() {
    method getImageUri (line 86) | public Uri getImageUri(Bitmap bitmap_Image) {
    method getRealPathFromURI (line 93) | private String getRealPathFromURI(Uri imageUri) {
    method FoundPerson (line 104) | public void FoundPerson()
    method LostPerson (line 147) | public void LostPerson()  {
    method buildSubItemList (line 194) | private List<sub> buildSubItemList(List<Bitmap> faces) {

FILE: app/src/main/java/com/helloworld/goodpoint/utils/Draw.java
  class Draw (line 15) | public class Draw extends View {
    method init (line 20) | public void init(int i){
    method Draw (line 36) | public Draw(Context context, String Tex) {
    method onDraw (line 44) | protected void onDraw(Canvas canvas) {

FILE: app/src/main/java/fragments/PageFragment1.java
  class PageFragment1 (line 14) | public class PageFragment1 extends Fragment {
    method onCreateView (line 15) | @Nullable

FILE: app/src/main/java/fragments/PageFragment2.java
  class PageFragment2 (line 14) | public class PageFragment2 extends Fragment {
    method onCreateView (line 15) | @Nullable

FILE: app/src/main/java/fragments/PageFragment3.java
  class PageFragment3 (line 14) | public class PageFragment3 extends Fragment {
    method onCreateView (line 15) | @Nullable

FILE: app/src/test/java/com/helloworld/goodpoint/ExampleUnitTest.java
  class ExampleUnitTest (line 12) | public class ExampleUnitTest {
    method addition_isCorrect (line 13) | @Test

FILE: backend/find_losts/admin.py
  class LostObjectAdmin (line 7) | class LostObjectAdmin(admin.ModelAdmin):
  class LostItemAdmin (line 12) | class LostItemAdmin(admin.ModelAdmin):

FILE: backend/find_losts/apps.py
  class FindLostsConfig (line 4) | class FindLostsConfig(AppConfig):

FILE: backend/find_losts/migrations/0001_initial.py
  class Migration (line 9) | class Migration(migrations.Migration):

FILE: backend/find_losts/migrations/0002_alter_matchedperson_percent.py
  class Migration (line 6) | class Migration(migrations.Migration):

FILE: backend/find_losts/models.py
  class LostObject (line 8) | class LostObject(models.Model):
    class Meta (line 14) | class Meta:
  function lost_person_images (line 18) | def lost_person_images(instance,filename):
  class LostPersonImage (line 22) | class LostPersonImage(models.Model):
    class Meta (line 27) | class Meta:
  class LostPerson (line 31) | class LostPerson(models.Model):
    class Meta (line 37) | class Meta:
  class LostItem (line 41) | class LostItem(models.Model):
    class Meta (line 50) | class Meta:
  class FoundObject (line 54) | class FoundObject(models.Model):
    class Meta (line 62) | class Meta:
  function found_person_images (line 66) | def found_person_images(instance,filename):
  class FoundPerson (line 70) | class FoundPerson(models.Model):
    class Meta (line 75) | class Meta:
  class FoundPersonImage (line 79) | class FoundPersonImage(models.Model):
    class Meta (line 83) | class Meta:
  class FoundItem (line 88) | class FoundItem(models.Model):
    class Meta (line 97) | class Meta:
  class Candidate (line 101) | class Candidate(models.Model):
    class Meta (line 109) | class Meta:
  class MatchedPerson (line 114) | class MatchedPerson(models.Model):
    class Meta (line 126) | class Meta:

FILE: backend/find_losts/serializers.py
  class LostObjectSerializer (line 10) | class LostObjectSerializer(serializers.ModelSerializer):
    class Meta (line 11) | class Meta:
  class LostItemSerializer (line 16) | class LostItemSerializer(serializers.ModelSerializer):
    class Meta (line 17) | class Meta:
    method validate (line 21) | def validate(self, attrs):
  class LostPersonImageSerializer (line 27) | class LostPersonImageSerializer(serializers.ModelSerializer):
    class Meta (line 28) | class Meta:
  function match_with_found_person (line 33) | def match_with_found_person(pk):
  class LostPersonSerializer (line 79) | class LostPersonSerializer(serializers.ModelSerializer):
    class Meta (line 84) | class Meta:
    method create (line 89) | def create(self, validated_data):
  class Lost_PersonSerializer (line 139) | class Lost_PersonSerializer(serializers.ModelSerializer):
    class Meta (line 141) | class Meta:
  class FoundObjectSerializer (line 146) | class FoundObjectSerializer(serializers.ModelSerializer):
    class Meta (line 147) | class Meta:
  class FoundItemSerializer (line 152) | class FoundItemSerializer(serializers.ModelSerializer):
    class Meta (line 153) | class Meta:
    method validate (line 157) | def validate(self, attrs):
  function match_with_lost_person (line 163) | def match_with_lost_person(pk):
  class FoundPersonSerializer (line 187) | class FoundPersonSerializer(serializers.ModelSerializer):
    class Meta (line 194) | class Meta:
    method create (line 199) | def create(self, validated_data):
  class Found_PersonSerializer (line 252) | class Found_PersonSerializer(serializers.ModelSerializer):
    class Meta (line 253) | class Meta:
  class FoundPersonImageSerializer (line 258) | class FoundPersonImageSerializer(serializers.ModelSerializer):
    class Meta (line 259) | class Meta:
  class MapSerializer (line 264) | class MapSerializer(serializers.ModelSerializer):
    class Meta (line 269) | class Meta:

FILE: backend/find_losts/views.py
  class LostItemView (line 27) | class LostItemView(generics.ListCreateAPIView):
  class LostObjectView (line 32) | class LostObjectView(generics.ListCreateAPIView):
    method create (line 36) | def create(self, request, *args, **kwargs):
  class LostObjectFilter (line 48) | class LostObjectFilter(ListAPIView):
  class LostObjectDetailsView (line 55) | class LostObjectDetailsView(generics.RetrieveUpdateDestroyAPIView):
  class LostItemFilter (line 63) | class LostItemFilter(ListAPIView):
  class FoundObjectFilter (line 72) | class FoundObjectFilter(ListAPIView):
  class FoundItemFilter (line 81) | class FoundItemFilter(ListAPIView):
  class LostItemDetailsView (line 88) | class LostItemDetailsView(generics.RetrieveUpdateDestroyAPIView):
  class LostPersonView (line 93) | class LostPersonView(generics.ListCreateAPIView):
  class Lost_PersonView2 (line 99) | class Lost_PersonView2(generics.UpdateAPIView):
  class Lost_PersonView (line 105) | class Lost_PersonView(generics.RetrieveUpdateDestroyAPIView):
  class LostPersonDetailsView (line 112) | class LostPersonDetailsView(generics.RetrieveUpdateDestroyAPIView):
  class LostPersonImageView (line 117) | class LostPersonImageView(generics.ListCreateAPIView):
  class LostPersonImageDetailsView (line 121) | class LostPersonImageDetailsView(generics.RetrieveUpdateDestroyAPIView):
  class FoundObjectView (line 126) | class FoundObjectView(generics.ListCreateAPIView):
  class FoundObjectDetalisView (line 130) | class FoundObjectDetalisView(generics.RetrieveUpdateDestroyAPIView):
  class FoundItemView (line 135) | class FoundItemView(generics.ListCreateAPIView):
  class FoundItemDetailsView (line 139) | class FoundItemDetailsView(generics.RetrieveUpdateDestroyAPIView):
  class FoundPersonView (line 144) | class FoundPersonView(generics.ListCreateAPIView):
  class Found_PersonView (line 150) | class Found_PersonView(generics.RetrieveUpdateDestroyAPIView):
  class FoundPersonImageView (line 157) | class FoundPersonImageView(generics.ListCreateAPIView):
  class MapView (line 162) | class MapView(generics.ListAPIView):
  function comp_lostView (line 166) | def comp_lostView(request, city):
  class Comp_ViewSet (line 179) | class Comp_ViewSet(viewsets.ViewSet):
    method retrieve (line 181) | def retrieve(self, request, pk):

FILE: backend/manage.py
  function main (line 7) | def main():

FILE: backend/notification/apps.py
  class NotificationConfig (line 4) | class NotificationConfig(AppConfig):

FILE: backend/notification/migrations/0001_initial.py
  class Migration (line 6) | class Migration(migrations.Migration):

FILE: backend/notification/migrations/0002_notification_user_id.py
  class Migration (line 8) | class Migration(migrations.Migration):

FILE: backend/notification/models.py
  class Notification (line 7) | class Notification(models.Model):
    class Meta (line 16) | class Meta:

FILE: backend/notification/serializers.py
  class NotificationSerializer (line 7) | class NotificationSerializer(serializers.ModelSerializer):
    class Meta (line 9) | class Meta:
  class UpdateReadNotificationSerializer (line 14) | class UpdateReadNotificationSerializer(serializers.ModelSerializer):
    class Meta (line 16) | class Meta:
  class UpdateSentNotificationSerializer (line 21) | class UpdateSentNotificationSerializer(serializers.ModelSerializer):
    class Meta (line 23) | class Meta:
  class RetrieveNewNotificationSerializer (line 27) | class RetrieveNewNotificationSerializer(serializers.ModelSerializer):
    class Meta (line 29) | class Meta:

FILE: backend/notification/views.py
  class NotificationView (line 10) | class NotificationView(generics.ListCreateAPIView):
  class UserNotificationView (line 15) | class UserNotificationView(generics.ListAPIView):
    method get_queryset (line 18) | def get_queryset(self):
  class UpdateReadNotification (line 23) | class UpdateReadNotification(generics.UpdateAPIView):
  class UpdateSentNotification (line 29) | class UpdateSentNotification(generics.UpdateAPIView):
  class IsThereNewNotification (line 35) | class IsThereNewNotification(generics.ListAPIView):
    method get_queryset (line 38) | def get_queryset(self):

FILE: backend/user_account/apps.py
  class UserAccountConfig (line 4) | class UserAccountConfig(AppConfig):

FILE: backend/user_account/migrations/0001_initial.py
  class Migration (line 10) | class Migration(migrations.Migration):

FILE: backend/user_account/models.py
  function profile_pic_dir (line 8) | def profile_pic_dir(instance, filename):
  function idcard_pic_dir (line 12) | def idcard_pic_dir(instance, filename):
  class User (line 16) | class User(AbstractUser):
    method __str__ (line 24) | def __str__(self):
    method tokens (line 27) | def tokens(self):
    class Meta (line 34) | class Meta:

FILE: backend/user_account/serializers.py
  class SignupSerializer (line 6) | class SignupSerializer(serializers.ModelSerializer):
    class Meta (line 9) | class Meta:
    method validate (line 13) | def validate(self, attrs):
    method create (line 30) | def create(self, validated_data):
  class LogoutSerializer (line 34) | class LogoutSerializer(serializers.Serializer):
    method validate (line 37) | def validate(self, attrs):
    method save (line 41) | def save(self, **kwargs):
    method update (line 47) | def update(self, instance, validated_data):
    method create (line 50) | def create(self, validated_data):
  class WhoFoundItemSerializer (line 54) | class WhoFoundItemSerializer(serializers.ModelSerializer):
    class Meta (line 58) | class Meta:
  class IdCardSerializer (line 63) | class IdCardSerializer(serializers.ModelSerializer):
    class Meta (line 65) | class Meta:

FILE: backend/user_account/views.py
  class SignupView (line 14) | class SignupView(generics.CreateAPIView):
  class LoginView (line 19) | class LoginView(APIView):
    method post (line 22) | def post(self, request):
  class LogoutView (line 47) | class LogoutView(GenericAPIView):
    method post (line 51) | def post(self, request):
  class WhoFoundItemView (line 60) | class WhoFoundItemView(generics.RetrieveAPIView):
  class SetIdCard (line 66) | class SetIdCard(generics.UpdateAPIView):
    method patch (line 71) | def patch(self, request, *args, **kwargs):

FILE: lib_task_api/src/main/java/com/example/lib_task_api/Detector.java
  type Detector (line 24) | public interface Detector {
    method recognizeImage (line 25) | List<Recognition> recognizeImage(Bitmap bitmap);
    method enableStatLogging (line 27) | void enableStatLogging(final boolean debug);
    method getStatString (line 29) | String getStatString();
    method close (line 31) | void close();
    method setNumThreads (line 33) | void setNumThreads(int numThreads);
    method setUseNNAPI (line 35) | void setUseNNAPI(boolean isChecked);
    class Recognition (line 38) | public class Recognition {
      method Recognition (line 56) | public Recognition(
      method getId (line 64) | public String getId() {
      method getTitle (line 68) | public String getTitle() {
      method getConfidence (line 72) | public Float getConfidence() {
      method getLocation (line 76) | public RectF getLocation() {
      method setLocation (line 80) | public void setLocation(RectF location) {
      method toString (line 84) | @Override

FILE: lib_task_api/src/main/java/com/example/lib_task_api/TFLiteObjectDetectionAPIModel.java
  class TFLiteObjectDetectionAPIModel (line 51) | public class TFLiteObjectDetectionAPIModel implements Detector {
    method create (line 77) | public static Detector create(
    method TFLiteObjectDetectionAPIModel (line 87) | private TFLiteObjectDetectionAPIModel(Context context, String modelFil...
    method recognizeImage (line 93) | @Override
    method enableStatLogging (line 117) | @Override
    method getStatString (line 120) | @Override
    method close (line 125) | @Override
    method setNumThreads (line 132) | @Override
    method setUseNNAPI (line 140) | @Override
    method recreateDetector (line 147) | private void recreateDetector() {

FILE: lib_task_api/src/test/java/com/example/lib_task_api/ExampleUnitTest.java
  class ExampleUnitTest (line 12) | public class ExampleUnitTest {
    method addition_isCorrect (line 13) | @Test

FILE: mylibrary/src/main/java/com/example/lib_task_api/Detector.java
  type Detector (line 22) | public interface Detector {
    method recognizeImage (line 23) | String recognizeImage(Bitmap bitmap);
    method close (line 24) | void close();
    method setNumThreads (line 26) | void setNumThreads(int numThreads);
    method setUseNNAPI (line 28) | void setUseNNAPI(boolean isChecked);
    class Recognition (line 31) | public class Recognition {
      method Recognition (line 49) | public Recognition(
      method getId (line 57) | public String getId() {
      method getTitle (line 61) | public String getTitle() {
      method getConfidence (line 65) | public Float getConfidence() {
      method getLocation (line 69) | public RectF getLocation() {
      method setLocation (line 73) | public void setLocation(RectF location) {
      method toString (line 77) | @Override

FILE: mylibrary/src/main/java/com/example/lib_task_api/TFLiteObjectDetectionAPIModel.java
  class TFLiteObjectDetectionAPIModel (line 57) | public class TFLiteObjectDetectionAPIModel implements Detector {
    method TFLiteObjectDetectionAPIModel (line 98) | private TFLiteObjectDetectionAPIModel() {}
    method loadModelFile (line 101) | private static MappedByteBuffer loadModelFile(AssetManager assets, Str...
    method create (line 119) | public static Detector create(
    method recognizeImage (line 175) | @Override
    method close (line 301) | @Override
    method setNumThreads (line 309) | @Override
    method setUseNNAPI (line 317) | @Override
    method recreateInterpreter (line 325) | private void recreateInterpreter() {

FILE: mylibrary/src/test/java/com/example/lib_task_api/ExampleUnitTest.java
  class ExampleUnitTest (line 12) | public class ExampleUnitTest {
    method addition_isCorrect (line 13) | @Test
Condensed preview — 362 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,664K chars).
[
  {
    "path": ".gitignore",
    "chars": 219,
    "preview": "*.iml\n.gradle\n/local.properties\n/.idea/caches\n/.idea/libraries\n/.idea/modules.xml\n/.idea/workspace.xml\n/.idea/navEditor."
  },
  {
    "path": ".idea/.name",
    "chars": 10,
    "preview": "Good Point"
  },
  {
    "path": ".idea/codeStyles/Project.xml",
    "chars": 4150,
    "preview": "<component name=\"ProjectCodeStyleConfiguration\">\n  <code_scheme name=\"Project\" version=\"173\">\n    <JetCodeStyleSettings>"
  },
  {
    "path": ".idea/compiler.xml",
    "chars": 170,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"CompilerConfiguration\">\n    <bytecodeTar"
  },
  {
    "path": ".idea/gradle.xml",
    "chars": 1015,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"GradleMigrationSettings\" migrationVersio"
  },
  {
    "path": ".idea/jarRepositories.xml",
    "chars": 1240,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"RemoteRepositoriesConfiguration\">\n    <r"
  },
  {
    "path": ".idea/misc.xml",
    "chars": 372,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectRootManager\" version=\"2\" language"
  },
  {
    "path": ".idea/render.experimental.xml",
    "chars": 173,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"RenderSettings\">\n    <option name=\"showD"
  },
  {
    "path": ".idea/runConfigurations.xml",
    "chars": 564,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"RunConfigurationProducerService\">\n    <o"
  },
  {
    "path": ".idea/shelf/Uncommitted_changes_before_Update_at_2_13_2021_11_27_PM_[Default_Changelist]/shelved.patch",
    "chars": 343,
    "preview": "Index: backend/.env\nIDEA additional info:\nSubsystem: com.intellij.openapi.diff.impl.patch.CharsetEP\n<+>UTF-8\n==========="
  },
  {
    "path": ".idea/shelf/Uncommitted_changes_before_Update_at_2_13_2021_11_27_PM__Default_Changelist_.xml",
    "chars": 431,
    "preview": "<changelist name=\"Uncommitted_changes_before_Update_at_2_13_2021_11_27_PM_[Default_Changelist]\" date=\"1613251665327\" rec"
  },
  {
    "path": ".idea/shelf/Uncommitted_changes_before_Update_at_5_26_2021_1_21_AM_[Default_Changelist]/shelved.patch",
    "chars": 135935,
    "preview": "Index: app/src/main/res/layout/fragment_profile.xml\nIDEA additional info:\nSubsystem: com.intellij.openapi.diff.impl.patc"
  },
  {
    "path": ".idea/vcs.xml",
    "chars": 167,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"VcsDirectoryMappings\">\n    <mapping dire"
  },
  {
    "path": "README.md",
    "chars": 8206,
    "preview": "\r\n# The Team\r\n### Team Members\r\n* Team Leader : Esraa Sayed Ahmed\r\n* Team Member 1 : Dina Mishahed Mousa\r\n* Team Member "
  },
  {
    "path": "app/.gitignore",
    "chars": 6,
    "preview": "/build"
  },
  {
    "path": "app/.idea/workspace.xml",
    "chars": 2913,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ChangeListManager\">\n    <list default=\"t"
  },
  {
    "path": "app/build.gradle",
    "chars": 3985,
    "preview": "apply plugin: 'com.android.application'\nandroid {\n    compileSdkVersion 31\n    buildToolsVersion \"30.0.1\"\n\n    defaultCo"
  },
  {
    "path": "app/google-services.json",
    "chars": 1002,
    "preview": "{\n  \"project_info\": {\n    \"project_number\": \"311132691163\",\n    \"project_id\": \"goodpoint-72323\",\n    \"storage_bucket\": \""
  },
  {
    "path": "app/proguard-rules.pro",
    "chars": 750,
    "preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
  },
  {
    "path": "app/src/androidTest/java/com/helloworld/goodpoint/ExampleInstrumentedTest.java",
    "chars": 762,
    "preview": "package com.helloworld.goodpoint;\n\nimport android.content.Context;\n\nimport androidx.test.platform.app.InstrumentationReg"
  },
  {
    "path": "app/src/debug/res/values/google_maps_api.xml",
    "chars": 1154,
    "preview": "<resources>\n    <!--\n    TODO: Before you run your application, you need a Google Maps API key.\n\n    To get one, follow "
  },
  {
    "path": "app/src/main/AndroidManifest.xml",
    "chars": 8276,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:to"
  },
  {
    "path": "app/src/main/assets/labelmap.txt",
    "chars": 661,
    "preview": "person\nbicycle\ncar\nmotorcycle\nairplane\nbus\ntrain\ntruck\nboat\ntraffic light\nfire hydrant\n???\nstop sign\nparking meter\nbench"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/App.java",
    "chars": 1240,
    "preview": "package com.helloworld.goodpoint;\n\nimport android.app.Application;\nimport android.content.Intent;\nimport android.content"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/adapter/MyExpandableListAdapter.java",
    "chars": 2512,
    "preview": "package com.helloworld.goodpoint.adapter;\n\nimport android.content.Context;\nimport android.graphics.Typeface;\nimport andr"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/adapter/NotificationListAdapter.java",
    "chars": 5528,
    "preview": "package com.helloworld.goodpoint.adapter;\n\nimport android.content.Context;\nimport android.graphics.Color;\nimport android"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/CameraActivity.java",
    "chars": 13617,
    "preview": "/*\n * Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 ("
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/CameraConnectionFragment.java",
    "chars": 21888,
    "preview": "/*\n * Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 ("
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/DetectorActivity.java",
    "chars": 14655,
    "preview": "/*\n * Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 ("
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/LegacyCameraConnectionFragment.java",
    "chars": 7073,
    "preview": "package com.helloworld.goodpoint.detection;\n\n/*\n * Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n *\n * Lic"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/customview/AutoFitTextureView.java",
    "chars": 2572,
    "preview": "/*\n * Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 ("
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/customview/OverlayView.java",
    "chars": 1629,
    "preview": "/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lic"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/customview/RecognitionScoreView.java",
    "chars": 2160,
    "preview": "/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lic"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/customview/ResultsView.java",
    "chars": 897,
    "preview": "/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lic"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/env/BorderedText.java",
    "chars": 3173,
    "preview": "/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lic"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/env/ImageUtils.java",
    "chars": 7391,
    "preview": "/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lic"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/env/Logger.java",
    "chars": 6001,
    "preview": "/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lic"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/env/Size.java",
    "chars": 3993,
    "preview": "/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lic"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/detection/tracking/MultiBoxTracker.java",
    "chars": 7916,
    "preview": "/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lic"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/pojo/FoundItem.java",
    "chars": 2935,
    "preview": "package com.helloworld.goodpoint.pojo;\n\nimport com.google.gson.annotations.Expose;\nimport com.google.gson.annotations.Se"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/pojo/FoundPerson.java",
    "chars": 1461,
    "preview": "package com.helloworld.goodpoint.pojo;\n\nimport com.google.gson.annotations.Expose;\nimport com.google.gson.annotations.Se"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/pojo/LostItem.java",
    "chars": 3200,
    "preview": "package com.helloworld.goodpoint.pojo;\n\nimport com.google.gson.annotations.Expose;\nimport com.google.gson.annotations.Se"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/pojo/LostObject.java",
    "chars": 1102,
    "preview": "package com.helloworld.goodpoint.pojo;\n\nimport com.google.gson.annotations.Expose;\nimport com.google.gson.annotations.Se"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/pojo/LostPerson.java",
    "chars": 1077,
    "preview": "package com.helloworld.goodpoint.pojo;\n\nimport com.google.gson.annotations.Expose;\nimport com.google.gson.annotations.Se"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/pojo/NotificationItem.java",
    "chars": 1810,
    "preview": "package com.helloworld.goodpoint.pojo;\n\nimport android.content.Intent;\nimport android.graphics.Bitmap;\n\nimport com.googl"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/pojo/ObjectLocation.java",
    "chars": 962,
    "preview": "package com.helloworld.goodpoint.pojo;\n\nimport com.google.android.gms.maps.model.LatLng;\nimport com.google.gson.annotati"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/pojo/RegUser.java",
    "chars": 2105,
    "preview": "package com.helloworld.goodpoint.pojo;\n\nimport com.google.gson.annotations.Expose;\nimport com.google.gson.annotations.Se"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/pojo/Token.java",
    "chars": 905,
    "preview": "package com.helloworld.goodpoint.pojo;\n\nimport com.google.gson.annotations.Expose;\nimport com.google.gson.annotations.Se"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/pojo/User.java",
    "chars": 2843,
    "preview": "package com.helloworld.goodpoint.pojo;\n\nimport android.graphics.Bitmap;\n\nimport com.google.gson.annotations.Expose;\nimpo"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/pojo/UserMap.java",
    "chars": 913,
    "preview": "package com.helloworld.goodpoint.pojo;\n\nimport com.google.gson.annotations.Expose;\nimport com.google.gson.annotations.Se"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/retrofit/ApiClient.java",
    "chars": 778,
    "preview": "package com.helloworld.goodpoint.retrofit;\n\nimport android.util.Log;\n\nimport retrofit2.Retrofit;\nimport retrofit2.conver"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/retrofit/ApiInterface.java",
    "chars": 6208,
    "preview": "package com.helloworld.goodpoint.retrofit;\n\nimport com.google.gson.JsonObject;\nimport com.helloworld.goodpoint.pojo.Foun"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/retrofit/Decode.java",
    "chars": 783,
    "preview": "package com.helloworld.goodpoint.retrofit;\n\nimport android.util.Base64;\nimport android.util.Log;\n\nimport java.io.Unsuppo"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/ActionActivity.java",
    "chars": 984,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\nimport android.content.Intent;\ni"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/AdapterOfMatchFragment.java",
    "chars": 2412,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.app.Activity;\nimport android.content.Context;\nimport android.conten"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/Alert.java",
    "chars": 1143,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.content.Intent;\nimport android.os.Bundle;\nimport android.view.View;"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/DetailsActivity.java",
    "chars": 5604,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.Manifest;\nimport android.content.ActivityNotFoundException;\nimport "
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/ExternalActivity.java",
    "chars": 899,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\nimport android.os.Bundle;\nimport"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/FoundMapFragment.java",
    "chars": 13891,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.Manifest;\nimport android.annotation.SuppressLint;\nimport android.co"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/GlobalVar.java",
    "chars": 1020,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.graphics.Bitmap;\n\nimport com.helloworld.goodpoint.pojo.LostItem;\nim"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/HomeActivity.java",
    "chars": 16654,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.content.DialogInterface;\nimport android.content.Intent;\nimport andr"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/HomeFragment.java",
    "chars": 5433,
    "preview": "package com.helloworld.goodpoint.ui;\n\n\nimport android.os.Bundle;\nimport android.view.LayoutInflater;\nimport android.view"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/ID_cardDetection.java",
    "chars": 9213,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport androidx.annotation.NonNull;\nimport androidx.appcompat.app.AppCompatActivit"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/IdCard.java",
    "chars": 371,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.os.Bundle;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\nimpor"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/MainActivity.java",
    "chars": 9517,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.content.Intent;\nimport android.graphics.Bitmap;\nimport android.grap"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/MatchFragment.java",
    "chars": 2648,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.os.Bundle;\n\nimport androidx.fragment.app.Fragment;\n\nimport android."
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/NotificationActivity.java",
    "chars": 15784,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.Manifest;\nimport android.app.AlertDialog;\nimport android.content.Di"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/PrefManager.java",
    "chars": 1543,
    "preview": "package com.helloworld.goodpoint.ui;\n\n\nimport android.content.Context;\nimport android.content.SharedPreferences;\n\n\npubli"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/ProfileFragment.java",
    "chars": 2221,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.os.Bundle;\n\nimport androidx.fragment.app.Fragment;\n\nimport android."
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/SigninActivity.java",
    "chars": 12181,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.app.AlertDialog;\nimport android.content.Intent;\nimport android.grap"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/SignupActivity.java",
    "chars": 17953,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.Manifest;\nimport android.app.DatePickerDialog;\nimport android.conte"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/SlideAdapter.java",
    "chars": 708,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.view.FrameStats;\n\nimport androidx.annotation.NonNull;\nimport androi"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/WelcomeActivity.java",
    "chars": 4854,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport androidx.appcompat.app.AppCompatActivity;\nimport androidx.core.content.Cont"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/candidate/CandidatePage.java",
    "chars": 5859,
    "preview": "package com.helloworld.goodpoint.ui.candidate;\n\nimport android.os.Bundle;\nimport android.view.View;\nimport android.widge"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/candidate/Item.java",
    "chars": 617,
    "preview": "package com.helloworld.goodpoint.ui.candidate;\n\n\nimport java.util.List;\n\npublic class Item {\n\n    private String itemTit"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/candidate/ItemAdapter.java",
    "chars": 2528,
    "preview": "package com.helloworld.goodpoint.ui.candidate;\n\n\nimport android.content.Context;\nimport android.view.LayoutInflater;\nimp"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/candidate/SubItem.java",
    "chars": 1199,
    "preview": "package com.helloworld.goodpoint.ui.candidate;\n\npublic class SubItem {\n    private String subItemTitle;\n    private Stri"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/candidate/SubItemAdapter.java",
    "chars": 3496,
    "preview": "package com.helloworld.goodpoint.ui.candidate;\n\n\nimport android.content.Context;\nimport android.view.LayoutInflater;\nimp"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/candidate/lostitem.java",
    "chars": 533,
    "preview": "package com.helloworld.goodpoint.ui.candidate;\n\npublic class lostitem {\n    String type,descriotion;\n\n    public lostite"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/check_registration.java",
    "chars": 1609,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport androidx.annotation.RequiresApi;\nimport androidx.appcompat.app.AppCompatAct"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/forgetPasswordScreens/ForgetPassSuccessMessage.java",
    "chars": 1458,
    "preview": "package com.helloworld.goodpoint.ui.forgetPasswordScreens;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\nimport and"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/forgetPasswordScreens/ForgetPasswordWithEmail.java",
    "chars": 1754,
    "preview": "package com.helloworld.goodpoint.ui.forgetPasswordScreens;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\nimport and"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/forgetPasswordScreens/ForgetPasswordWithPhone.java",
    "chars": 1731,
    "preview": "package com.helloworld.goodpoint.ui.forgetPasswordScreens;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\nimport and"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/forgetPasswordScreens/MakeSelection.java",
    "chars": 1457,
    "preview": "package com.helloworld.goodpoint.ui.forgetPasswordScreens;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\nimport and"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/forgetPasswordScreens/SetNewPassword.java",
    "chars": 3823,
    "preview": "package com.helloworld.goodpoint.ui.forgetPasswordScreens;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\nimport com"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/forgetPasswordScreens/VerifiyCode.java",
    "chars": 1896,
    "preview": "package com.helloworld.goodpoint.ui.forgetPasswordScreens;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\nimport com"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/FoundObjectActivity.java",
    "chars": 36318,
    "preview": "package com.helloworld.goodpoint.ui.lostFoundObject;\n\nimport android.Manifest;\nimport android.annotation.SuppressLint;\ni"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/LostObjectDetailsActivity.java",
    "chars": 22510,
    "preview": "package com.helloworld.goodpoint.ui.lostFoundObject;\n\nimport android.app.AlertDialog;\nimport android.app.DatePickerDialo"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/ObjectFragment.java",
    "chars": 6502,
    "preview": "package com.helloworld.goodpoint.ui.lostFoundObject;\n\nimport android.Manifest;\nimport android.app.Fragment;\nimport andro"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/PersonFragment.java",
    "chars": 16369,
    "preview": "package com.helloworld.goodpoint.ui.lostFoundObject;\n\nimport android.Manifest;\nimport android.annotation.SuppressLint;\ni"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/lostFoundObject/objectDataType.java",
    "chars": 382,
    "preview": "package com.helloworld.goodpoint.ui.lostFoundObject;\n\nimport android.graphics.Bitmap;\nimport android.net.Uri;\n\nimport ja"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/myService/MyService.java",
    "chars": 935,
    "preview": "package com.helloworld.goodpoint.ui.myService;\n\nimport android.app.Service;\nimport android.content.Intent;\nimport androi"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/myService/NotificationBroadcast.java",
    "chars": 9804,
    "preview": "package com.helloworld.goodpoint.ui.myService;\n\nimport android.annotation.SuppressLint;\nimport android.app.AlarmManager;"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/prepareList.java",
    "chars": 2639,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.app.Activity;\nimport android.content.Context;\n\nimport androidx.appc"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/select_multiple_faces/ItemList.java",
    "chars": 723,
    "preview": "package com.helloworld.goodpoint.ui.select_multiple_faces;\n\n\nimport android.graphics.Bitmap;\n\nimport java.util.List;\n\npu"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/select_multiple_faces/ItemListAdapter.java",
    "chars": 2680,
    "preview": "package com.helloworld.goodpoint.ui.select_multiple_faces;\n\n\nimport android.content.Context;\nimport android.view.LayoutI"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/select_multiple_faces/Selection.java",
    "chars": 4418,
    "preview": "package com.helloworld.goodpoint.ui.select_multiple_faces;\n\nimport android.content.Intent;\nimport android.graphics.Bitma"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/select_multiple_faces/SubItemList.java",
    "chars": 655,
    "preview": "package com.helloworld.goodpoint.ui.select_multiple_faces;\n\nimport android.graphics.Bitmap;\n\nimport java.io.Serializable"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/select_multiple_faces/SubItemListAdapter.java",
    "chars": 3136,
    "preview": "package com.helloworld.goodpoint.ui.select_multiple_faces;\n\n\nimport android.content.Context;\nimport android.view.LayoutI"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/sub.java",
    "chars": 617,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.graphics.Bitmap;\n\nimport java.io.Serializable;\n\npublic class sub im"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/subAdapter.java",
    "chars": 2243,
    "preview": "package com.helloworld.goodpoint.ui;\n\n\nimport android.content.Context;\nimport android.view.LayoutInflater;\nimport androi"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/ui/test.java",
    "chars": 8216,
    "preview": "package com.helloworld.goodpoint.ui;\n\nimport android.content.Intent;\nimport android.database.Cursor;\nimport android.grap"
  },
  {
    "path": "app/src/main/java/com/helloworld/goodpoint/utils/Draw.java",
    "chars": 1285,
    "preview": "package com.helloworld.goodpoint.utils;\n\nimport android.content.Context;\nimport android.graphics.Canvas;\nimport android."
  },
  {
    "path": "app/src/main/java/fragments/PageFragment1.java",
    "chars": 626,
    "preview": "package fragments;\n\nimport android.os.Bundle;\nimport android.view.LayoutInflater;\nimport android.view.View;\nimport andro"
  },
  {
    "path": "app/src/main/java/fragments/PageFragment2.java",
    "chars": 628,
    "preview": "package fragments;\n\nimport android.os.Bundle;\nimport android.view.LayoutInflater;\nimport android.view.View;\nimport andro"
  },
  {
    "path": "app/src/main/java/fragments/PageFragment3.java",
    "chars": 627,
    "preview": "package fragments;\n\nimport android.os.Bundle;\nimport android.view.LayoutInflater;\nimport android.view.View;\nimport andro"
  },
  {
    "path": "app/src/main/res/anim/rotate_splash.xml",
    "chars": 335,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <rotate andr"
  },
  {
    "path": "app/src/main/res/drawable/account_circle.xml",
    "chars": 649,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        androi"
  },
  {
    "path": "app/src/main/res/drawable/active_dot.xml",
    "chars": 307,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sh"
  },
  {
    "path": "app/src/main/res/drawable/add_new_photo2.xml",
    "chars": 391,
    "preview": "<vector android:height=\"100dp\" android:tint=\"#F38E3A\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    and"
  },
  {
    "path": "app/src/main/res/drawable/application_icon.xml",
    "chars": 2444,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"280dp\"\n    android:height=\"281dp\"\n"
  },
  {
    "path": "app/src/main/res/drawable/application_icon2.xml",
    "chars": 2767,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"255dp\"\n    android:height=\"255dp\"\n"
  },
  {
    "path": "app/src/main/res/drawable/background.xml",
    "chars": 231,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <gradient\n"
  },
  {
    "path": "app/src/main/res/drawable/background2.xml",
    "chars": 231,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <gradient\n"
  },
  {
    "path": "app/src/main/res/drawable/bottom_sheet_background.xml",
    "chars": 357,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\" android:shape=\""
  },
  {
    "path": "app/src/main/res/drawable/btn_login.xml",
    "chars": 546,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\" >\n    <item "
  },
  {
    "path": "app/src/main/res/drawable/buttons.xml",
    "chars": 578,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\" android:shape=\""
  },
  {
    "path": "app/src/main/res/drawable/circle.xml",
    "chars": 426,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\" android:shape="
  },
  {
    "path": "app/src/main/res/drawable/circle2.xml",
    "chars": 426,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\" android:shape="
  },
  {
    "path": "app/src/main/res/drawable/custom_button.xml",
    "chars": 543,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\" >\n    <item "
  },
  {
    "path": "app/src/main/res/drawable/custom_button_location.xml",
    "chars": 550,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\" >\n    <item "
  },
  {
    "path": "app/src/main/res/drawable/default_dot.xml",
    "chars": 307,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sh"
  },
  {
    "path": "app/src/main/res/drawable/details_background.xml",
    "chars": 273,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "app/src/main/res/drawable/details_btns.xml",
    "chars": 544,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\" >\n    <item "
  },
  {
    "path": "app/src/main/res/drawable/general_back_icon.xml",
    "chars": 380,
    "preview": "<vector android:alpha=\"0.96\" android:height=\"24dp\"\n    android:tint=\"?attr/colorControlNormal\" android:viewportHeight=\"2"
  },
  {
    "path": "app/src/main/res/drawable/halfcircle.xml",
    "chars": 284,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape\n    xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android"
  },
  {
    "path": "app/src/main/res/drawable/ic_account_circle.xml",
    "chars": 550,
    "preview": "<vector android:height=\"@dimen/_100sdp\" android:tint=\"#D2D2D2\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24"
  },
  {
    "path": "app/src/main/res/drawable/ic_add.xml",
    "chars": 333,
    "preview": "<vector android:height=\"@dimen/_18sdp\" android:tint=\"#FFFFFF\"\n    android:viewportHeight=\"22\" android:viewportWidth=\"22\""
  },
  {
    "path": "app/src/main/res/drawable/ic_background.xml",
    "chars": 11091,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"561dp\"\n    android:height=\"722dp\"\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_account_circle_150.xml",
    "chars": 549,
    "preview": "<vector android:height=\"150dp\" android:tint=\"?attr/colorControlNormal\"\n    android:viewportHeight=\"24\" android:viewportW"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_account_circle_24.xml",
    "chars": 569,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_add_a_photo_24.xml",
    "chars": 576,
    "preview": "<vector android:height=\"150dp\" android:tint=\"?attr/colorControlNormal\"\n    android:viewportHeight=\"24\" android:viewportW"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_archive_24.xml",
    "chars": 577,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_assignment_turned_in_24.xml",
    "chars": 547,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#B9B9B9\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    andr"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_business_center_24.xml",
    "chars": 507,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#79787B\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    andr"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_check_24.xml",
    "chars": 369,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_check_circle_24.xml",
    "chars": 440,
    "preview": "<vector android:alpha=\"0.96\" android:height=\"24dp\"\n    android:tint=\"?attr/colorControlNormal\" android:viewportHeight=\"2"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_date_range_24.xml",
    "chars": 525,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_email_24.xml",
    "chars": 454,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_exit_to_app_24.xml",
    "chars": 501,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_fact_check_24.xml",
    "chars": 543,
    "preview": "<vector android:autoMirrored=\"true\" android:height=\"24dp\"\n    android:tint=\"#B9B9B9\" android:viewportHeight=\"24\"\n    and"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_feedback_24.xml",
    "chars": 447,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_gallery_24.xml",
    "chars": 417,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#D9F38E3A\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    an"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_help_24.xml",
    "chars": 630,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_location_on_24.xml",
    "chars": 452,
    "preview": "\n<vector android:height=\"24dp\" android:tint=\"#FF9800\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    and"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_location_on_241.xml",
    "chars": 451,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#F15F78\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    andr"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_location_on_242.xml",
    "chars": 451,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#B81934\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    andr"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_location_on_243.xml",
    "chars": 451,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#2D86CC\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    andr"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_lock_24.xml",
    "chars": 594,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_navigate_next_24.xml",
    "chars": 327,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#456191\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    andr"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_notifications_24.xml",
    "chars": 469,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#FFFFFF\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    andr"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_person_24.xml",
    "chars": 403,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#79787B\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    andr"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_phone_android_24.xml",
    "chars": 426,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#79787B\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    andr"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_photo_camera_24.xml",
    "chars": 629,
    "preview": "<vector android:alpha=\"0.36\" android:height=\"@dimen/_50sdp\"\n    android:tint=\"#989B9C\" android:viewportHeight=\"24\"\n    a"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_remove_red_eye_24.xml",
    "chars": 552,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_room_24.xml",
    "chars": 490,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_search_24.xml",
    "chars": 528,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#FFFFFF\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    andr"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_search_241.xml",
    "chars": 527,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#F8786F\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    andr"
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_settings_24.xml",
    "chars": 1223,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_share_24.xml",
    "chars": 750,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_star_rate_24.xml",
    "chars": 419,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_visibility_24.xml",
    "chars": 552,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_baseline_visibility_off_24.xml",
    "chars": 911,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_close.xml",
    "chars": 381,
    "preview": "<vector android:height=\"24dp\" android:tint=\"#4A4848\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    andr"
  },
  {
    "path": "app/src/main/res/drawable/ic_design.xml",
    "chars": 407,
    "preview": "<vector android:alpha=\"0.96\" android:height=\"640dp\"\n    android:viewportHeight=\"640\" android:viewportWidth=\"640\"\n    and"
  },
  {
    "path": "app/src/main/res/drawable/ic_done.xml",
    "chars": 385,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"84.076dp\"\n    android:height=\"60.8"
  },
  {
    "path": "app/src/main/res/drawable/ic_found.xml",
    "chars": 2122,
    "preview": "<vector android:height=\"24dp\" android:viewportHeight=\"980\"\n    android:viewportWidth=\"840\" android:width=\"20.571428dp\" x"
  },
  {
    "path": "app/src/main/res/drawable/ic_home.xml",
    "chars": 372,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"@dimen/_18sdp\"\n    android:height="
  },
  {
    "path": "app/src/main/res/drawable/ic_home_background.xml",
    "chars": 12459,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"1095dp\"\n    android:height=\"1004dp"
  },
  {
    "path": "app/src/main/res/drawable/ic_image.xml",
    "chars": 404,
    "preview": "<vector android:height=\"120dp\" android:tint=\"#3C3F41\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    and"
  },
  {
    "path": "app/src/main/res/drawable/ic_launcher_background.xml",
    "chars": 4867,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector\n    android:height=\"108dp\"\n    android:width=\"108dp\"\n    android:viewport"
  },
  {
    "path": "app/src/main/res/drawable/ic_launcher_background1.xml",
    "chars": 5606,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:wi"
  },
  {
    "path": "app/src/main/res/drawable/ic_launcher_foreground.xml",
    "chars": 1702,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:aapt=\"http://schemas.android.com/aapt\"\n    "
  },
  {
    "path": "app/src/main/res/drawable/ic_location.xml",
    "chars": 510,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"@dimen/_150sdp\"\n    android:height"
  },
  {
    "path": "app/src/main/res/drawable/ic_lock.xml",
    "chars": 1125,
    "preview": "<vector android:alpha=\"0.96\" android:height=\"1000dp\"\n    android:viewportHeight=\"1000\" android:viewportWidth=\"1000\"\n    "
  },
  {
    "path": "app/src/main/res/drawable/ic_lost.xml",
    "chars": 3367,
    "preview": "<vector android:height=\"24dp\" android:viewportHeight=\"512\"\n    android:viewportWidth=\"512\" android:width=\"24dp\" xmlns:an"
  },
  {
    "path": "app/src/main/res/drawable/ic_notification.xml",
    "chars": 780,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"@dimen/_18sdp\"\n    android:height="
  },
  {
    "path": "app/src/main/res/drawable/ic_password.xml",
    "chars": 1472,
    "preview": "<vector android:alpha=\"0.96\" android:height=\"122.88dp\"\n    android:viewportHeight=\"122.88\" android:viewportWidth=\"108.05"
  },
  {
    "path": "app/src/main/res/drawable/ic_password_reset.xml",
    "chars": 2185,
    "preview": "<vector android:alpha=\"0.96\" android:height=\"122.879dp\"\n    android:viewportHeight=\"122.879\" android:viewportWidth=\"106."
  },
  {
    "path": "app/src/main/res/drawable/ic_photo.xml",
    "chars": 2006,
    "preview": "<vector android:height=\"103.75dp\" android:viewportHeight=\"166\"\n    android:viewportWidth=\"160\" android:width=\"100dp\" xml"
  },
  {
    "path": "app/src/main/res/drawable/ic_prof_pic.xml",
    "chars": 527,
    "preview": "<vector android:height=\"@dimen/_100sdp\"\n    android:viewportHeight=\"24\" android:viewportWidth=\"24\"\n    android:width=\"@d"
  },
  {
    "path": "app/src/main/res/drawable/ic_profile.xml",
    "chars": 423,
    "preview": "<vector android:height=\"@dimen/_18sdp\" android:tint=\"#FFFFFF\"\n    android:viewportHeight=\"22\" android:viewportWidth=\"22\""
  },
  {
    "path": "app/src/main/res/drawable/ic_realcam.xml",
    "chars": 1462,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"96dp\"\n    android:height=\"96dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/ic_rotat_image.xml",
    "chars": 11406,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"867dp\"\n    android:height=\"563dp\"\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_signup.xml",
    "chars": 745,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"622dp\"\n    android:height=\"722dp\"\n"
  },
  {
    "path": "app/src/main/res/drawable/location_signin.xml",
    "chars": 472,
    "preview": "<vector android:alpha=\"0.96\" android:height=\"24dp\"\n    android:tint=\"#FFFFFF\" android:viewportHeight=\"24\"\n    android:vi"
  },
  {
    "path": "app/src/main/res/drawable/nav_head_color.xml",
    "chars": 290,
    "preview": "<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:shape=\"rectangle\">\n    <gradient\n        a"
  },
  {
    "path": "app/src/main/res/drawable/notification_button1.xml",
    "chars": 466,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item a"
  },
  {
    "path": "app/src/main/res/drawable/notification_button2.xml",
    "chars": 467,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item a"
  },
  {
    "path": "app/src/main/res/drawable/oval.xml",
    "chars": 411,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <solid\n   "
  },
  {
    "path": "app/src/main/res/drawable/q_circle.xml",
    "chars": 252,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape\n    xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android"
  },
  {
    "path": "app/src/main/res/drawable/radius_expand.xml",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\" android:shape=\""
  },
  {
    "path": "app/src/main/res/drawable/show_password.xml",
    "chars": 301,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "app/src/main/res/drawable/signin_background.xml",
    "chars": 1841,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item"
  },
  {
    "path": "app/src/main/res/drawable/switch_icon.xml",
    "chars": 391,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n  "
  },
  {
    "path": "app/src/main/res/drawable/wave.xml",
    "chars": 559,
    "preview": "<vector\n    xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"1440dp\"\n    android:height=\"32"
  },
  {
    "path": "app/src/main/res/drawable/white_oval.xml",
    "chars": 255,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item>\n"
  },
  {
    "path": "app/src/main/res/drawable-mdpi/avd_done.xml",
    "chars": 1191,
    "preview": "<animated-vector xmlns:tools=\"http://schemas.android.com/tools\"\n    xmlns:android=\"http://schemas.android.com/apk/res/an"
  },
  {
    "path": "app/src/main/res/drawable-v24/ic_launcher_foreground.xml",
    "chars": 1702,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:aapt=\"http://schemas.android.com/aapt\"\n    "
  },
  {
    "path": "app/src/main/res/drawable-xxxhdpi/bottom_sheet_bg.xml",
    "chars": 320,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  }
]

// ... and 162 more files (download for full content)

About this extraction

This page contains the full source code of the Ahmed-plusplus/Good_Point GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 362 files (38.3 MB), approximately 481.3k tokens, and a symbol index with 935 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!