Compare commits
10 Commits
1d28b2567a
...
ea871f9d97
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ea871f9d97 | ||
| 8011503b4b | |||
| e866a788e6 | |||
| f332f0090c | |||
| 6f504aae90 | |||
| 2295153cab | |||
| fde4dc10df | |||
| 94d9d179c1 | |||
| b9cfccee6f | |||
| 69db5e78bc |
6
.idea/AndroidProjectSystem.xml
generated
Normal file
6
.idea/AndroidProjectSystem.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AndroidProjectSystem">
|
||||
<option name="providerId" value="com.android.tools.idea.GradleProjectSystem" />
|
||||
</component>
|
||||
</project>
|
||||
860
.idea/caches/deviceStreaming.xml
generated
Normal file
860
.idea/caches/deviceStreaming.xml
generated
Normal file
@@ -0,0 +1,860 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DeviceStreaming">
|
||||
<option name="deviceSelectionList">
|
||||
<list>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="Sony" />
|
||||
<option name="codename" value="A402SO" />
|
||||
<option name="id" value="A402SO" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Sony" />
|
||||
<option name="name" value="Xperia 10" />
|
||||
<option name="screenDensity" value="450" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2520" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="27" />
|
||||
<option name="brand" value="DOCOMO" />
|
||||
<option name="codename" value="F01L" />
|
||||
<option name="id" value="F01L" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="FUJITSU" />
|
||||
<option name="name" value="F-01L" />
|
||||
<option name="screenDensity" value="360" />
|
||||
<option name="screenX" value="720" />
|
||||
<option name="screenY" value="1280" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="OnePlus" />
|
||||
<option name="codename" value="OP535DL1" />
|
||||
<option name="id" value="OP535DL1" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="OnePlus" />
|
||||
<option name="name" value="CPH2409" />
|
||||
<option name="screenDensity" value="401" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2412" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="OnePlus" />
|
||||
<option name="codename" value="OP5552L1" />
|
||||
<option name="id" value="OP5552L1" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="OnePlus" />
|
||||
<option name="name" value="CPH2415" />
|
||||
<option name="screenDensity" value="480" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2412" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="35" />
|
||||
<option name="brand" value="OnePlus" />
|
||||
<option name="codename" value="OP5552L1" />
|
||||
<option name="id" value="OP5552L1" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="OnePlus" />
|
||||
<option name="name" value="CPH2415" />
|
||||
<option name="screenDensity" value="480" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2412" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="OPPO" />
|
||||
<option name="codename" value="OP573DL1" />
|
||||
<option name="id" value="OP573DL1" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="OPPO" />
|
||||
<option name="name" value="CPH2557" />
|
||||
<option name="screenDensity" value="480" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="28" />
|
||||
<option name="brand" value="DOCOMO" />
|
||||
<option name="codename" value="SH-01L" />
|
||||
<option name="id" value="SH-01L" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="SHARP" />
|
||||
<option name="name" value="AQUOS sense2 SH-01L" />
|
||||
<option name="screenDensity" value="480" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2160" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="a14m" />
|
||||
<option name="id" value="a14m" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="SM-A145R" />
|
||||
<option name="screenDensity" value="450" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2408" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="a15" />
|
||||
<option name="id" value="a15" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="A15" />
|
||||
<option name="screenDensity" value="450" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2340" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="a15x" />
|
||||
<option name="id" value="a15x" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="A15 5G" />
|
||||
<option name="screenDensity" value="450" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2340" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="a16x" />
|
||||
<option name="id" value="a16x" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="A16 5G" />
|
||||
<option name="screenDensity" value="450" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2340" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="a35x" />
|
||||
<option name="id" value="a35x" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="A35" />
|
||||
<option name="screenDensity" value="450" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2340" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="akita" />
|
||||
<option name="id" value="akita" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 8a" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="35" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="akita" />
|
||||
<option name="id" value="akita" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 8a" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="motorola" />
|
||||
<option name="codename" value="arcfox" />
|
||||
<option name="id" value="arcfox" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Motorola" />
|
||||
<option name="name" value="razr plus 2024" />
|
||||
<option name="screenDensity" value="360" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="1272" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="33" />
|
||||
<option name="brand" value="motorola" />
|
||||
<option name="codename" value="austin" />
|
||||
<option name="id" value="austin" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Motorola" />
|
||||
<option name="name" value="moto g 5G (2022)" />
|
||||
<option name="screenDensity" value="280" />
|
||||
<option name="screenX" value="720" />
|
||||
<option name="screenY" value="1600" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="33" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="b0q" />
|
||||
<option name="id" value="b0q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy S22 Ultra" />
|
||||
<option name="screenDensity" value="600" />
|
||||
<option name="screenX" value="1440" />
|
||||
<option name="screenY" value="3088" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="b6q" />
|
||||
<option name="id" value="b6q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Flip 6" />
|
||||
<option name="screenDensity" value="340" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2640" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="32" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="bluejay" />
|
||||
<option name="id" value="bluejay" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 6a" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="caiman" />
|
||||
<option name="id" value="caiman" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 9 Pro" />
|
||||
<option name="screenDensity" value="360" />
|
||||
<option name="screenX" value="960" />
|
||||
<option name="screenY" value="2142" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="35" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="caiman" />
|
||||
<option name="id" value="caiman" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 9 Pro" />
|
||||
<option name="screenDensity" value="360" />
|
||||
<option name="screenX" value="960" />
|
||||
<option name="screenY" value="2142" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="comet" />
|
||||
<option name="default" value="true" />
|
||||
<option name="id" value="comet" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 9 Pro Fold" />
|
||||
<option name="screenDensity" value="390" />
|
||||
<option name="screenX" value="2076" />
|
||||
<option name="screenY" value="2152" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="35" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="comet" />
|
||||
<option name="default" value="true" />
|
||||
<option name="id" value="comet" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 9 Pro Fold" />
|
||||
<option name="screenDensity" value="390" />
|
||||
<option name="screenX" value="2076" />
|
||||
<option name="screenY" value="2152" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="29" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="crownqlteue" />
|
||||
<option name="id" value="crownqlteue" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy Note9" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="2220" />
|
||||
<option name="screenY" value="1080" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="dm2q" />
|
||||
<option name="id" value="dm2q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="S23 Plus" />
|
||||
<option name="screenDensity" value="450" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2340" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="dm3q" />
|
||||
<option name="id" value="dm3q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy S23 Ultra" />
|
||||
<option name="screenDensity" value="600" />
|
||||
<option name="screenX" value="1440" />
|
||||
<option name="screenY" value="3088" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="motorola" />
|
||||
<option name="codename" value="dubai" />
|
||||
<option name="id" value="dubai" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Motorola" />
|
||||
<option name="name" value="edge 30" />
|
||||
<option name="screenDensity" value="405" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="e1q" />
|
||||
<option name="default" value="true" />
|
||||
<option name="id" value="e1q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy S24" />
|
||||
<option name="screenDensity" value="480" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2340" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="e3q" />
|
||||
<option name="id" value="e3q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy S24 Ultra" />
|
||||
<option name="screenDensity" value="450" />
|
||||
<option name="screenX" value="1440" />
|
||||
<option name="screenY" value="3120" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="33" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="eos" />
|
||||
<option name="id" value="eos" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Eos" />
|
||||
<option name="screenDensity" value="320" />
|
||||
<option name="screenX" value="384" />
|
||||
<option name="screenY" value="384" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="35" />
|
||||
<option name="brand" value="motorola" />
|
||||
<option name="codename" value="eqe" />
|
||||
<option name="id" value="eqe" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Motorola" />
|
||||
<option name="name" value="edge 50 pro" />
|
||||
<option name="screenDensity" value="450" />
|
||||
<option name="screenX" value="1220" />
|
||||
<option name="screenY" value="2712" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="33" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="felix" />
|
||||
<option name="id" value="felix" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel Fold" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="2208" />
|
||||
<option name="screenY" value="1840" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="felix" />
|
||||
<option name="id" value="felix" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel Fold" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="2208" />
|
||||
<option name="screenY" value="1840" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="33" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="felix_camera" />
|
||||
<option name="id" value="felix_camera" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel Fold (Camera-enabled)" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="2208" />
|
||||
<option name="screenY" value="1840" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="motorola" />
|
||||
<option name="codename" value="fogona" />
|
||||
<option name="id" value="fogona" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Motorola" />
|
||||
<option name="name" value="moto g play - 2024" />
|
||||
<option name="screenDensity" value="280" />
|
||||
<option name="screenX" value="720" />
|
||||
<option name="screenY" value="1600" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="motorola" />
|
||||
<option name="codename" value="fogos" />
|
||||
<option name="id" value="fogos" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Motorola" />
|
||||
<option name="name" value="moto g34 5G" />
|
||||
<option name="screenDensity" value="280" />
|
||||
<option name="screenX" value="720" />
|
||||
<option name="screenY" value="1600" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="g0q" />
|
||||
<option name="id" value="g0q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="SM-S906U1" />
|
||||
<option name="screenDensity" value="450" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2340" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="gta9pwifi" />
|
||||
<option name="id" value="gta9pwifi" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="SM-X210" />
|
||||
<option name="screenDensity" value="240" />
|
||||
<option name="screenX" value="1200" />
|
||||
<option name="screenY" value="1920" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="33" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="gts7lwifi" />
|
||||
<option name="id" value="gts7lwifi" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="SM-T870" />
|
||||
<option name="screenDensity" value="340" />
|
||||
<option name="screenX" value="1600" />
|
||||
<option name="screenY" value="2560" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="gts7xllite" />
|
||||
<option name="id" value="gts7xllite" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="SM-T738U" />
|
||||
<option name="screenDensity" value="340" />
|
||||
<option name="screenX" value="1600" />
|
||||
<option name="screenY" value="2560" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="33" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="gts8uwifi" />
|
||||
<option name="formFactor" value="Tablet" />
|
||||
<option name="id" value="gts8uwifi" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy Tab S8 Ultra" />
|
||||
<option name="screenDensity" value="320" />
|
||||
<option name="screenX" value="1848" />
|
||||
<option name="screenY" value="2960" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="gts8wifi" />
|
||||
<option name="formFactor" value="Tablet" />
|
||||
<option name="id" value="gts8wifi" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy Tab S8" />
|
||||
<option name="screenDensity" value="274" />
|
||||
<option name="screenX" value="1600" />
|
||||
<option name="screenY" value="2560" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="gts9fe" />
|
||||
<option name="id" value="gts9fe" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy Tab S9 FE 5G" />
|
||||
<option name="screenDensity" value="280" />
|
||||
<option name="screenX" value="1440" />
|
||||
<option name="screenY" value="2304" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="gts9wifi" />
|
||||
<option name="id" value="gts9wifi" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="SM-X710" />
|
||||
<option name="screenDensity" value="340" />
|
||||
<option name="screenX" value="1600" />
|
||||
<option name="screenY" value="2560" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="husky" />
|
||||
<option name="id" value="husky" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 8 Pro" />
|
||||
<option name="screenDensity" value="390" />
|
||||
<option name="screenX" value="1008" />
|
||||
<option name="screenY" value="2244" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="30" />
|
||||
<option name="brand" value="motorola" />
|
||||
<option name="codename" value="java" />
|
||||
<option name="id" value="java" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Motorola" />
|
||||
<option name="name" value="G20" />
|
||||
<option name="screenDensity" value="280" />
|
||||
<option name="screenX" value="720" />
|
||||
<option name="screenY" value="1600" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="komodo" />
|
||||
<option name="id" value="komodo" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 9 Pro XL" />
|
||||
<option name="screenDensity" value="360" />
|
||||
<option name="screenX" value="1008" />
|
||||
<option name="screenY" value="2244" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="35" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="komodo" />
|
||||
<option name="id" value="komodo" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 9 Pro XL" />
|
||||
<option name="screenDensity" value="360" />
|
||||
<option name="screenX" value="1008" />
|
||||
<option name="screenY" value="2244" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="motorola" />
|
||||
<option name="codename" value="lion" />
|
||||
<option name="id" value="lion" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Motorola" />
|
||||
<option name="name" value="moto g04" />
|
||||
<option name="screenDensity" value="280" />
|
||||
<option name="screenX" value="720" />
|
||||
<option name="screenY" value="1612" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="33" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="lynx" />
|
||||
<option name="id" value="lynx" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 7a" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="motorola" />
|
||||
<option name="codename" value="lyriq" />
|
||||
<option name="id" value="lyriq" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Motorola" />
|
||||
<option name="name" value="edge 40" />
|
||||
<option name="screenDensity" value="400" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="motorola" />
|
||||
<option name="codename" value="manaus" />
|
||||
<option name="id" value="manaus" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Motorola" />
|
||||
<option name="name" value="edge 40 neo" />
|
||||
<option name="screenDensity" value="400" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="33" />
|
||||
<option name="brand" value="motorola" />
|
||||
<option name="codename" value="maui" />
|
||||
<option name="id" value="maui" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Motorola" />
|
||||
<option name="name" value="moto g play - 2023" />
|
||||
<option name="screenDensity" value="280" />
|
||||
<option name="screenX" value="720" />
|
||||
<option name="screenY" value="1600" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="o1q" />
|
||||
<option name="id" value="o1q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy S21" />
|
||||
<option name="screenDensity" value="421" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="31" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="oriole" />
|
||||
<option name="id" value="oriole" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 6" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="35" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="pa3q" />
|
||||
<option name="id" value="pa3q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy S25 Ultra" />
|
||||
<option name="screenDensity" value="600" />
|
||||
<option name="screenX" value="1440" />
|
||||
<option name="screenY" value="3120" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="33" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="panther" />
|
||||
<option name="id" value="panther" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 7" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="q5q" />
|
||||
<option name="id" value="q5q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy Z Fold5" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1812" />
|
||||
<option name="screenY" value="2176" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="q6q" />
|
||||
<option name="id" value="q6q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy Z Fold6" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1856" />
|
||||
<option name="screenY" value="2160" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="30" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="r11" />
|
||||
<option name="formFactor" value="Wear OS" />
|
||||
<option name="id" value="r11" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel Watch" />
|
||||
<option name="screenDensity" value="320" />
|
||||
<option name="screenX" value="384" />
|
||||
<option name="screenY" value="384" />
|
||||
<option name="type" value="WEAR_OS" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="r11q" />
|
||||
<option name="id" value="r11q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="SM-S711U" />
|
||||
<option name="screenDensity" value="450" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2340" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="30" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="redfin" />
|
||||
<option name="id" value="redfin" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 5" />
|
||||
<option name="screenDensity" value="440" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2340" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="shiba" />
|
||||
<option name="id" value="shiba" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 8" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="t2q" />
|
||||
<option name="id" value="t2q" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="Galaxy S21 Plus" />
|
||||
<option name="screenDensity" value="394" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2400" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="33" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="tangorpro" />
|
||||
<option name="formFactor" value="Tablet" />
|
||||
<option name="id" value="tangorpro" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel Tablet" />
|
||||
<option name="screenDensity" value="320" />
|
||||
<option name="screenX" value="1600" />
|
||||
<option name="screenY" value="2560" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="35" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="tegu" />
|
||||
<option name="id" value="tegu" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 9a" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2424" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="tokay" />
|
||||
<option name="default" value="true" />
|
||||
<option name="id" value="tokay" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 9" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2424" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="35" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="tokay" />
|
||||
<option name="default" value="true" />
|
||||
<option name="id" value="tokay" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 9" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2424" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="36" />
|
||||
<option name="brand" value="google" />
|
||||
<option name="codename" value="tokay" />
|
||||
<option name="default" value="true" />
|
||||
<option name="id" value="tokay" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Google" />
|
||||
<option name="name" value="Pixel 9" />
|
||||
<option name="screenDensity" value="420" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2424" />
|
||||
</PersistentDeviceSelectionData>
|
||||
<PersistentDeviceSelectionData>
|
||||
<option name="api" value="34" />
|
||||
<option name="brand" value="samsung" />
|
||||
<option name="codename" value="xcover7" />
|
||||
<option name="id" value="xcover7" />
|
||||
<option name="labId" value="google" />
|
||||
<option name="manufacturer" value="Samsung" />
|
||||
<option name="name" value="SM-G556B" />
|
||||
<option name="screenDensity" value="450" />
|
||||
<option name="screenX" value="1080" />
|
||||
<option name="screenY" value="2408" />
|
||||
</PersistentDeviceSelectionData>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
2
.idea/compiler.xml
generated
2
.idea/compiler.xml
generated
@@ -4,6 +4,6 @@
|
||||
<annotationProcessing>
|
||||
<profile default="true" name="Default" enabled="true" />
|
||||
</annotationProcessing>
|
||||
<bytecodeTargetLevel target="1.8" />
|
||||
<bytecodeTargetLevel target="11" />
|
||||
</component>
|
||||
</project>
|
||||
18
.idea/deploymentTargetSelector.xml
generated
Normal file
18
.idea/deploymentTargetSelector.xml
generated
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetSelector">
|
||||
<selectionStates>
|
||||
<SelectionState runConfigName="app">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
<DropdownSelection timestamp="2025-09-07T14:12:41.632425Z">
|
||||
<Target type="DEFAULT_BOOT">
|
||||
<handle>
|
||||
<DeviceId pluginId="LocalEmulator" identifier="path=/Users/mustafaicmen/.android/avd/Pixel_9a.avd" />
|
||||
</handle>
|
||||
</Target>
|
||||
</DropdownSelection>
|
||||
<DialogSelection />
|
||||
</SelectionState>
|
||||
</selectionStates>
|
||||
</component>
|
||||
</project>
|
||||
13
.idea/deviceManager.xml
generated
Normal file
13
.idea/deviceManager.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DeviceTable">
|
||||
<option name="columnSorters">
|
||||
<list>
|
||||
<ColumnSorterState>
|
||||
<option name="column" value="Name" />
|
||||
<option name="order" value="ASCENDING" />
|
||||
</ColumnSorterState>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
5
.idea/gradle.xml
generated
5
.idea/gradle.xml
generated
@@ -4,10 +4,9 @@
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="delegatedBuild" value="false" />
|
||||
<option name="testRunner" value="GRADLE" />
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="testRunner" value="CHOOSE_PER_TEST" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="ms-11" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
|
||||
5
.idea/jarRepositories.xml
generated
5
.idea/jarRepositories.xml
generated
@@ -46,5 +46,10 @@
|
||||
<option name="name" value="maven" />
|
||||
<option name="url" value="https://www.jitpack.io" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="maven3" />
|
||||
<option name="name" value="maven3" />
|
||||
<option name="url" value="https://cardinalcommerceprod.jfrog.io/artifactory/android" />
|
||||
</remote-repository>
|
||||
</component>
|
||||
</project>
|
||||
10
.idea/migrations.xml
generated
Normal file
10
.idea/migrations.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectMigrations">
|
||||
<option name="MigrateToGradleLocalJavaHome">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
</set>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
10
.idea/misc.xml
generated
10
.idea/misc.xml
generated
@@ -7,10 +7,18 @@
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="ms-11" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
<option name="id" value="Android" />
|
||||
</component>
|
||||
<component name="VisualizationToolProject">
|
||||
<option name="state">
|
||||
<ProjectState>
|
||||
<option name="scale" value="0.22487304687499998" />
|
||||
</ProjectState>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
1
.idea/modules.xml
generated
1
.idea/modules.xml
generated
@@ -2,7 +2,6 @@
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/pizzalemon-android-v2.iml" filepath="$PROJECT_DIR$/.idea/modules/pizzalemon-android-v2.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/pizzalemon-android-v2.app.iml" filepath="$PROJECT_DIR$/.idea/modules/app/pizzalemon-android-v2.app.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/pizzalemon-android-v2.app.androidTest.iml" filepath="$PROJECT_DIR$/.idea/modules/app/pizzalemon-android-v2.app.androidTest.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/pizzalemon-android-v2.app.main.iml" filepath="$PROJECT_DIR$/.idea/modules/app/pizzalemon-android-v2.app.main.iml" />
|
||||
|
||||
17
.idea/runConfigurations.xml
generated
Normal file
17
.idea/runConfigurations.xml
generated
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RunConfigurationProducerService">
|
||||
<option name="ignoredProducers">
|
||||
<set>
|
||||
<option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.PatternConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
|
||||
<option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
|
||||
<option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
|
||||
</set>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
@@ -15,13 +15,13 @@ repositories {
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 33
|
||||
compileSdkVersion 35
|
||||
defaultConfig {
|
||||
applicationId "ch.pizzalemon.android"
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 33
|
||||
versionCode 27// play store'daki version --> canlı: 0 - dahili test: 17
|
||||
versionName "2.07" // play store'daki version --> canlı: 0.00 - dahili test: 1.17
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 35
|
||||
versionCode 31// play store'daki version --> canlı: 0 - dahili test: 17
|
||||
versionName "2.11" // play store'daki version --> canlı: 0.00 - dahili test: 1.17
|
||||
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
||||
multiDexEnabled true
|
||||
}
|
||||
@@ -35,6 +35,7 @@ android {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
namespace 'ch.pizzalemon.android'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -76,13 +77,20 @@ dependencies {
|
||||
implementation 'io.github.inflationx:calligraphy3:3.1.1'
|
||||
implementation 'io.github.inflationx:viewpump:2.0.3'
|
||||
implementation 'com.wdullaer:materialdatetimepicker:4.2.3'
|
||||
implementation 'q.rorbin:badgeview:1.1.3'
|
||||
implementation 'com.braintreepayments.api:braintree:2.22.0'
|
||||
implementation 'org.jsoup:jsoup:1.14.2'
|
||||
implementation 'me.relex:circleindicator:2.1.6'
|
||||
implementation('com.braintreepayments.api:drop-in:3.7.1') {
|
||||
exclude group: 'com.braintreepayments.api', module: 'braintree'
|
||||
}
|
||||
implementation 'com.braintreepayments.api:drop-in:6.17.0'
|
||||
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
}
|
||||
|
||||
// Javac'ı ayrı JVM ile koştur ve iç modülleri aç
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
options.fork = true
|
||||
options.forkOptions.jvmArgs += [
|
||||
'--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED',
|
||||
'--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED',
|
||||
'--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED',
|
||||
'--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED'
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="ch.pizzalemon.android">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
|
||||
@@ -5,10 +5,20 @@ import com.onesignal.OneSignal;
|
||||
import com.squareup.picasso.OkHttp3Downloader;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import java.security.SecureRandom;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.SSLSocketFactory;
|
||||
import javax.net.ssl.TrustManager;
|
||||
|
||||
import ch.pizzalemon.android.api.ApiConstants;
|
||||
import ch.pizzalemon.android.api.SSLTrustManager;
|
||||
import io.github.inflationx.calligraphy3.CalligraphyConfig;
|
||||
import io.github.inflationx.calligraphy3.CalligraphyInterceptor;
|
||||
import io.github.inflationx.viewpump.ViewPump;
|
||||
import okhttp3.Cache;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.logging.HttpLoggingInterceptor;
|
||||
|
||||
/**
|
||||
* Created by cimenmus on 11/09/2017.
|
||||
@@ -35,20 +45,25 @@ public class App extends MultiDexApplication {
|
||||
}
|
||||
|
||||
private void initPicasso(){
|
||||
// DISK CACHE
|
||||
// Disk cache of 2% storage space up to 50MB but no less than 5MB
|
||||
// 48 megabyte
|
||||
//Picasso picasso = new Picasso.Builder(this).downloader(new OkHttp3Downloader(getCacheDir(), 48 * 1024 * 1024)).build();
|
||||
Picasso picasso = new Picasso.Builder(this).downloader(new OkHttp3Downloader(getCacheDir())).build();
|
||||
|
||||
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
|
||||
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
|
||||
|
||||
OkHttpClient.Builder builder = new OkHttpClient.Builder()
|
||||
.cache(new Cache(getCacheDir(), 48 * 1024 * 1024))
|
||||
.connectTimeout(ApiConstants.API_CONNECT_TIMEOUT, java.util.concurrent.TimeUnit.SECONDS)
|
||||
.readTimeout(ApiConstants.API_READ_TIMEOUT, java.util.concurrent.TimeUnit.SECONDS)
|
||||
.retryOnConnectionFailure(true)
|
||||
.addInterceptor(logging);
|
||||
addSSLTrustToOkHttp(builder);
|
||||
|
||||
OkHttpClient okHttpClient = builder.build();
|
||||
OkHttp3Downloader okHttp3Downloader = new OkHttp3Downloader(okHttpClient);
|
||||
|
||||
Picasso picasso = new Picasso.Builder(this)
|
||||
.downloader(okHttp3Downloader)
|
||||
.build();
|
||||
Picasso.setSingletonInstance(picasso);
|
||||
/*
|
||||
// MEMORY CACHE
|
||||
//default cache size is %15 of available memory
|
||||
// LRU memory cache of 15% the available application RAM
|
||||
//LruCache() takes byte parameter. Here is 4 megabyte
|
||||
Picasso.Builder picassoBuilder = new Picasso.Builder(this).memoryCache(new LruCache(8 * 1024 * 1024));
|
||||
Picasso.setSingletonInstance(picassoBuilder.build());
|
||||
*/
|
||||
}
|
||||
|
||||
private void initOneSignal(){
|
||||
@@ -56,4 +71,16 @@ public class App extends MultiDexApplication {
|
||||
OneSignal.setAppId(ApiConstants.ONESIGNAL_APP_ID);
|
||||
OneSignal.unsubscribeWhenNotificationsAreDisabled(true);
|
||||
}
|
||||
|
||||
private void addSSLTrustToOkHttp(OkHttpClient.Builder okHttpClientBuilder) {
|
||||
try {
|
||||
SSLTrustManager trustManager = new SSLTrustManager();
|
||||
SSLContext sslContext = SSLContext.getInstance("TLS");
|
||||
sslContext.init(null, new TrustManager[]{ trustManager }, new SecureRandom());
|
||||
SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
|
||||
okHttpClientBuilder.sslSocketFactory(sslSocketFactory, trustManager);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,11 +3,17 @@ package ch.pizzalemon.android.activity;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
|
||||
import ch.pizzalemon.android.R;
|
||||
import ch.pizzalemon.android.helper.DisplayHelper;
|
||||
import io.github.inflationx.viewpump.ViewPumpContextWrapper;
|
||||
|
||||
@@ -23,8 +29,13 @@ public class BaseActivity extends AppCompatActivity {
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setCurrentActivity(this);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
|
||||
DisplayHelper.changeStatusColor();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setContentView(int layoutResID) {
|
||||
super.setContentView(layoutResID);
|
||||
if (layoutResID != R.layout.activity_main){
|
||||
applyToInsentForNavigationBar();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,4 +75,37 @@ public class BaseActivity extends AppCompatActivity {
|
||||
}
|
||||
return pInfo.versionName;
|
||||
}
|
||||
}
|
||||
|
||||
private void applyToInsentForNavigationBar() {
|
||||
if (DisplayHelper.getNavMode() != NavMode.THREE_BUTTON){
|
||||
return;
|
||||
}
|
||||
ViewGroup content = findViewById(android.R.id.content);
|
||||
if (content.getChildCount() > 0) {
|
||||
View rootView = content.getChildAt(0);
|
||||
|
||||
ViewCompat.setOnApplyWindowInsetsListener(rootView, (v, insets) -> {
|
||||
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
|
||||
v.setPadding(0, 0, 0, systemBars.bottom);
|
||||
return insets;
|
||||
});
|
||||
|
||||
ViewCompat.requestApplyInsets(rootView);
|
||||
}
|
||||
}
|
||||
|
||||
private void applyToInsentForStatusBar() {
|
||||
ViewGroup content = findViewById(android.R.id.content);
|
||||
if (content.getChildCount() > 0) {
|
||||
View rootView = content.getChildAt(0);
|
||||
|
||||
ViewCompat.setOnApplyWindowInsetsListener(rootView, (v, insets) -> {
|
||||
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
|
||||
v.setPadding(0, systemBars.top, 0, 0);
|
||||
return insets;
|
||||
});
|
||||
|
||||
ViewCompat.requestApplyInsets(rootView);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ import android.view.View;
|
||||
import android.webkit.WebView;
|
||||
|
||||
import com.badoualy.stepperindicator.StepperIndicator;
|
||||
import com.braintreepayments.api.dropin.utils.PaymentMethodType;
|
||||
import com.braintreepayments.api.DropInPaymentMethod;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -16,17 +16,27 @@ import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ch.pizzalemon.android.R;
|
||||
import ch.pizzalemon.android.api.ApiConstants;
|
||||
import ch.pizzalemon.android.api.ApiEndPoints;
|
||||
import ch.pizzalemon.android.api.ApiErrorUtils;
|
||||
import ch.pizzalemon.android.api.ApiService;
|
||||
import ch.pizzalemon.android.api.ResponseObject;
|
||||
import ch.pizzalemon.android.fragment.createOrder.CreateOrderNoteFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.CreateOrderResultFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.CreateOrderSummaryFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.PaymentMethodFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.ShippingAddressFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.ShippingMethodFragment;
|
||||
import ch.pizzalemon.android.helper.DialogHelper;
|
||||
import ch.pizzalemon.android.helper.SessionHelper;
|
||||
import ch.pizzalemon.android.helper.SharedPrefsHelper;
|
||||
import ch.pizzalemon.android.model.AddressModel;
|
||||
import ch.pizzalemon.android.model.PaymentMethodModel;
|
||||
import ch.pizzalemon.android.model.PaymentTokenModel;
|
||||
import ch.pizzalemon.android.model.ShippingMethodModel;
|
||||
import ch.pizzalemon.android.model.cart.CartInfoModel;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
|
||||
public class CreateOrderActivity extends BaseActivity {
|
||||
|
||||
@@ -46,6 +56,8 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
private String couponCode;
|
||||
private ArrayList<PaymentMethodModel> paymentMethodList = new ArrayList<>();
|
||||
|
||||
private PaymentTokenModel paymentTokenModel = null;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@@ -105,7 +117,7 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
break;
|
||||
case 4:
|
||||
fragmentManager.beginTransaction().replace(R.id.orderFragmentsContainer,
|
||||
CreateOrderSummaryFragment.newInstance()).commit();
|
||||
CreateOrderSummaryFragment.newInstance(paymentTokenModel)).commit();
|
||||
break;
|
||||
|
||||
case 5:
|
||||
@@ -128,7 +140,7 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
openFragment(3);
|
||||
break;
|
||||
case CreateOrderNoteFragment.FRAGMENT_NAME:
|
||||
openFragment(4);
|
||||
createBraintreePaymentTokenAndOpenSummaryFragment();
|
||||
break;
|
||||
case CreateOrderSummaryFragment.FRAGMENT_NAME:
|
||||
openFragment(5);
|
||||
@@ -212,13 +224,13 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
this.selectedPaymentMethod = selectedPaymentMethod;
|
||||
}
|
||||
|
||||
public void setSelectedPaymentMethodForBraintree(PaymentMethodType paymentMethodType){
|
||||
public void setSelectedPaymentMethodForBraintree(DropInPaymentMethod paymentMethodType){
|
||||
String paymentMethodCode = "";
|
||||
switch (paymentMethodType){
|
||||
case PAYPAL:
|
||||
paymentMethodCode = ApiConstants.PAYMENT_METHOD_CODE_PAYPAL;
|
||||
break;
|
||||
case ANDROID_PAY:
|
||||
case GOOGLE_PAY:
|
||||
paymentMethodCode = ApiConstants.PAYMENT_METHOD_CODE_ANDROID_PAY;
|
||||
break;
|
||||
default:
|
||||
@@ -250,6 +262,33 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
}
|
||||
}
|
||||
|
||||
private void createBraintreePaymentTokenAndOpenSummaryFragment(){
|
||||
DialogHelper.showLoadingDialog();
|
||||
Call<ResponseObject<PaymentTokenModel>> call = ApiService.apiInterface.createBraintreePaymentToken(
|
||||
"/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_CREATE_BRAINTREE_PAYMENT_TOKEN + SessionHelper.getCustomerToken().getToken());
|
||||
|
||||
call.enqueue(new Callback<ResponseObject<PaymentTokenModel>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ResponseObject<PaymentTokenModel>> call, Response<ResponseObject<PaymentTokenModel>> response) {
|
||||
if(response.isSuccessful() &&
|
||||
response.body().getData() != null &&
|
||||
response.body().isSuccess() &&
|
||||
response.body().getData().getToken() != null){
|
||||
paymentTokenModel = response.body().getData();
|
||||
openFragment(4);
|
||||
}
|
||||
else {
|
||||
ApiErrorUtils.parseError(response);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<ResponseObject<PaymentTokenModel>> call, Throwable t) {
|
||||
DialogHelper.showFailedDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
|
||||
@@ -16,12 +16,14 @@ import ch.pizzalemon.android.R;
|
||||
import ch.pizzalemon.android.api.ApiEndPoints;
|
||||
import ch.pizzalemon.android.api.ApiErrorUtils;
|
||||
import ch.pizzalemon.android.api.ApiService;
|
||||
import ch.pizzalemon.android.api.ResponseArray;
|
||||
import ch.pizzalemon.android.api.ResponseObject;
|
||||
import ch.pizzalemon.android.helper.DialogHelper;
|
||||
import ch.pizzalemon.android.helper.PriceHelper;
|
||||
import ch.pizzalemon.android.helper.SessionHelper;
|
||||
import ch.pizzalemon.android.helper.SharedPrefsHelper;
|
||||
import ch.pizzalemon.android.helper.ViewHelper;
|
||||
import ch.pizzalemon.android.model.AddressModel;
|
||||
import ch.pizzalemon.android.model.CustomerTokenModel;
|
||||
import ch.pizzalemon.android.model.UserModel;
|
||||
import ch.pizzalemon.android.model.cart.CartInfoModel;
|
||||
@@ -156,8 +158,7 @@ public class LoginActivity extends BaseActivity {
|
||||
response.body().isSuccess()){
|
||||
SharedPrefsHelper.setCartItemCount(response.body().getData().getProducts().size());
|
||||
SharedPrefsHelper.setCartTotalPrice(PriceHelper.removeCurrencyFromPrice(response.body().getData().getCartTotalModel().getText()));
|
||||
startActivity(new Intent(LoginActivity.this, MainActivity.class));
|
||||
finishAffinity();
|
||||
getUserAddress();
|
||||
|
||||
}
|
||||
else
|
||||
@@ -171,4 +172,35 @@ public class LoginActivity extends BaseActivity {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void getUserAddress(){
|
||||
Call<ResponseArray<AddressModel>> call = ApiService.apiInterface.getCustomerAddresses(
|
||||
SessionHelper.getSelectedStore().getStoreName(),
|
||||
SessionHelper.getCustomerToken().getToken());
|
||||
call.enqueue(new Callback<ResponseArray<AddressModel>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ResponseArray<AddressModel>> call, Response<ResponseArray<AddressModel>> response) {
|
||||
DialogHelper.hideLoadingDialog();
|
||||
if(response.isSuccessful() &&
|
||||
response.body().getData() != null &&
|
||||
response.body().isSuccess()){
|
||||
if (!response.body().getData().isEmpty()){
|
||||
SessionHelper.saveUserMainAddress(response.body().getData().get(0));
|
||||
}
|
||||
startActivity(new Intent(LoginActivity.this, MainActivity.class));
|
||||
finishAffinity();
|
||||
}
|
||||
else {
|
||||
ApiErrorUtils.parseError(response);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<ResponseArray<AddressModel>> call, Throwable t) {
|
||||
DialogHelper.hideLoadingDialog();
|
||||
DialogHelper.showFailedDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import android.content.Intent;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import androidx.annotation.NonNull;
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
||||
|
||||
import androidx.core.view.WindowCompat;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.core.view.GravityCompat;
|
||||
import androidx.drawerlayout.widget.DrawerLayout;
|
||||
@@ -13,9 +15,11 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
import java.util.ArrayList;
|
||||
@@ -34,6 +38,7 @@ import ch.pizzalemon.android.fragment.MenuFragment;
|
||||
import ch.pizzalemon.android.fragment.ProductFragment;
|
||||
import ch.pizzalemon.android.fragment.ProfileFragment;
|
||||
import ch.pizzalemon.android.helper.DialogHelper;
|
||||
import ch.pizzalemon.android.helper.DisplayHelper;
|
||||
import ch.pizzalemon.android.helper.PriceHelper;
|
||||
import ch.pizzalemon.android.helper.SessionHelper;
|
||||
import ch.pizzalemon.android.helper.SharedPrefsHelper;
|
||||
@@ -56,6 +61,7 @@ public class MainActivity extends BaseActivity {
|
||||
@BindView(R.id.badgeLayout) RelativeLayout badgeLayout;
|
||||
@BindView(R.id.badgeTextView) TextView badgeTextView;
|
||||
|
||||
@BindView(R.id.shoppingCartLayout) LinearLayout shoppingCartLayout;
|
||||
@BindView(R.id.shoppingCartButtonLayout) RelativeLayout shoppingCartButtonLayout;
|
||||
@BindView(R.id.shoppingCartImageView) ImageView shoppingCartImageView;
|
||||
@BindView(R.id.shoppingCartTextView) TextView shoppingCartTextView;
|
||||
@@ -114,6 +120,14 @@ public class MainActivity extends BaseActivity {
|
||||
|
||||
private void initShoppingCartButton(){
|
||||
|
||||
int shoppingCartLayoutBottomMarginPx = DisplayHelper.dpToPx(20);
|
||||
if (DisplayHelper.getNavMode() == NavMode.THREE_BUTTON){
|
||||
shoppingCartLayoutBottomMarginPx = DisplayHelper.dpToPx(40);
|
||||
}
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) shoppingCartLayout.getLayoutParams();
|
||||
params.bottomMargin = shoppingCartLayoutBottomMarginPx; // px cinsinden
|
||||
|
||||
|
||||
animDown = AnimationUtils.loadAnimation(this, R.anim.anim_scale_down);
|
||||
animUp = AnimationUtils.loadAnimation(this, R.anim.anim_scale_up);
|
||||
|
||||
|
||||
@@ -104,6 +104,9 @@ public class MyAddressesActivity extends BaseActivity {
|
||||
AddressModel.checkNull(addressModels);
|
||||
addressList.clear();
|
||||
addressList.addAll(addressModels);
|
||||
if (!addressList.isEmpty()) {
|
||||
SessionHelper.saveUserMainAddress(addressList.get(0));
|
||||
}
|
||||
addressesRecyclerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package ch.pizzalemon.android.activity;
|
||||
|
||||
public enum NavMode {
|
||||
THREE_BUTTON,
|
||||
GESTURE,
|
||||
UNKNOWN
|
||||
}
|
||||
@@ -26,6 +26,7 @@ import ch.pizzalemon.android.helper.DialogHelper;
|
||||
import ch.pizzalemon.android.helper.SessionHelper;
|
||||
import ch.pizzalemon.android.helper.SharedPrefsHelper;
|
||||
import ch.pizzalemon.android.helper.ViewHelper;
|
||||
import ch.pizzalemon.android.model.AddressModel;
|
||||
import ch.pizzalemon.android.model.CityModel;
|
||||
import ch.pizzalemon.android.model.CountryModel;
|
||||
import ch.pizzalemon.android.model.CustomerTokenModel;
|
||||
@@ -293,6 +294,9 @@ public class RegisterActivity extends BaseActivity {
|
||||
customerTokenModel.setStoreOfToken(SessionHelper.getSelectedStore());
|
||||
SharedPrefsHelper.saveCustomerToken(customerTokenModel);
|
||||
SharedPrefsHelper.setCustomerLoggedIn(true);
|
||||
SessionHelper.saveUserMainAddress(
|
||||
new AddressModel(appEditTextList.get(6).getText() + ", " + appEditTextList.get(7).getText() + ", " + selectedCityModel.getCity())
|
||||
);
|
||||
startActivity(new Intent(RegisterActivity.this, MainActivity.class));
|
||||
finishAffinity();
|
||||
}
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
package ch.pizzalemon.android.adapter.pager;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentPagerAdapter;
|
||||
|
||||
import ch.pizzalemon.android.fragment.createOrder.CreateOrderResultFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.CreateOrderSummaryFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.PaymentMethodFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.ShippingAddressFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.ShippingMethodFragment;
|
||||
|
||||
/**
|
||||
* Created by cimenmus on 17/10/2017.
|
||||
*/
|
||||
|
||||
public class OrderPagerAdapter extends FragmentPagerAdapter {
|
||||
|
||||
public OrderPagerAdapter(FragmentManager fm) {
|
||||
super(fm);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
switch (position){
|
||||
case 0:
|
||||
return ShippingMethodFragment.newInstance();
|
||||
case 1:
|
||||
return ShippingAddressFragment.newInstance();
|
||||
case 2:
|
||||
return PaymentMethodFragment.newInstance();
|
||||
case 3:
|
||||
return CreateOrderSummaryFragment.newInstance();
|
||||
case 4:
|
||||
return CreateOrderResultFragment.newInstance();
|
||||
default:
|
||||
return ShippingMethodFragment.newInstance();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return 5;
|
||||
}
|
||||
|
||||
/*
|
||||
@Override
|
||||
public CharSequence getPageTitle(int position) {
|
||||
return "Page " + position;
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -4,8 +4,13 @@ import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.SSLSocketFactory;
|
||||
import javax.net.ssl.TrustManager;
|
||||
|
||||
import ch.pizzalemon.android.BuildConfig;
|
||||
import ch.pizzalemon.android.activity.BaseActivity;
|
||||
import ch.pizzalemon.android.helper.SessionHelper;
|
||||
@@ -61,6 +66,8 @@ public class ApiService {
|
||||
}
|
||||
});
|
||||
|
||||
addSSLTrustToOkHttp(builder);
|
||||
|
||||
HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); // set your desired log level
|
||||
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
|
||||
|
||||
@@ -89,4 +96,16 @@ public class ApiService {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
private void addSSLTrustToOkHttp(OkHttpClient.Builder okHttpClientBuilder) {
|
||||
try {
|
||||
SSLTrustManager trustManager = new SSLTrustManager();
|
||||
SSLContext sslContext = SSLContext.getInstance("TLS");
|
||||
sslContext.init(null, new TrustManager[]{ trustManager }, new SecureRandom());
|
||||
SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
|
||||
okHttpClientBuilder.sslSocketFactory(sslSocketFactory, trustManager);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package ch.pizzalemon.android.api;
|
||||
|
||||
import java.security.cert.CertificateException;
|
||||
import java.security.cert.X509Certificate;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
|
||||
// we got SSLHandshakeException for all requests for pinocchio, so we disabled ssl check for pinocciho pizza
|
||||
public class SSLTrustManager implements X509TrustManager {
|
||||
|
||||
@Override
|
||||
public void checkClientTrusted(
|
||||
X509Certificate[] chain,
|
||||
String authType
|
||||
) throws CertificateException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkServerTrusted(
|
||||
X509Certificate[] chain,
|
||||
String authType
|
||||
) throws CertificateException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public X509Certificate[] getAcceptedIssuers() {
|
||||
return new X509Certificate[0];
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package ch.pizzalemon.android.fragment.createOrder;
|
||||
|
||||
import android.app.Activity;
|
||||
import static com.braintreepayments.api.ThreeDSecureRequest.VERSION_2;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
@@ -8,7 +9,6 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -19,10 +19,14 @@ import android.webkit.WebViewClient;
|
||||
|
||||
import com.afollestad.materialdialogs.DialogAction;
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.braintreepayments.api.dropin.DropInActivity;
|
||||
import com.braintreepayments.api.dropin.DropInRequest;
|
||||
import com.braintreepayments.api.dropin.DropInResult;
|
||||
import com.braintreepayments.api.models.PayPalRequest;
|
||||
import com.braintreepayments.api.DropInClient;
|
||||
import com.braintreepayments.api.DropInListener;
|
||||
import com.braintreepayments.api.DropInRequest;
|
||||
import com.braintreepayments.api.DropInResult;
|
||||
import com.braintreepayments.api.PayPalRequest;
|
||||
import com.braintreepayments.api.ThreeDSecureAdditionalInformation;
|
||||
import com.braintreepayments.api.ThreeDSecurePostalAddress;
|
||||
import com.braintreepayments.api.ThreeDSecureRequest;
|
||||
import com.wdullaer.materialdatetimepicker.date.DatePickerDialog;
|
||||
import com.wdullaer.materialdatetimepicker.time.TimePickerDialog;
|
||||
import com.wdullaer.materialdatetimepicker.time.Timepoint;
|
||||
@@ -56,6 +60,7 @@ import ch.pizzalemon.android.helper.SharedPrefsHelper;
|
||||
import ch.pizzalemon.android.model.PaymentMethodModel;
|
||||
import ch.pizzalemon.android.model.PaymentTokenModel;
|
||||
import ch.pizzalemon.android.model.StoreShiftModel;
|
||||
import ch.pizzalemon.android.model.UserModel;
|
||||
import ch.pizzalemon.android.model.cart.CartInfoModel;
|
||||
import ch.pizzalemon.android.model.cart.CartProductModel;
|
||||
import ch.pizzalemon.android.model.cart.CartTotalModel;
|
||||
@@ -68,7 +73,7 @@ import retrofit2.Response;
|
||||
* Created by cimenmus on 17/10/2017.
|
||||
*/
|
||||
|
||||
public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
public class CreateOrderSummaryFragment extends CreateOrderBaseFragment implements DropInListener {
|
||||
|
||||
@BindView(R.id.orderPersonFullnamePizzalinkInfoLayout) AppInfoView orderPersonFullnamePizzalinkInfoLayout;
|
||||
@BindView(R.id.orderShippingMethodPizzalinkInfoLayout) AppInfoView orderShippingMethodPizzalinkInfoLayout;
|
||||
@@ -105,10 +110,16 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
private StoreShiftModel storeShiftModel;
|
||||
private PaymentTokenModel braintreePaymentTokenModel;
|
||||
|
||||
private DropInClient dropInClient = null;
|
||||
|
||||
public CreateOrderSummaryFragment() {}
|
||||
|
||||
public static CreateOrderSummaryFragment newInstance() {
|
||||
return new CreateOrderSummaryFragment();
|
||||
public static CreateOrderSummaryFragment newInstance(PaymentTokenModel paymentTokenModel) {
|
||||
Bundle args = new Bundle();
|
||||
args.putSerializable("braintreePaymentTokenModel", paymentTokenModel);
|
||||
CreateOrderSummaryFragment fragment = new CreateOrderSummaryFragment();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -119,39 +130,33 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_create_order_summary, container, false);
|
||||
getDataFromArguments();
|
||||
ButterKnife.bind(this, view);
|
||||
initViews();
|
||||
getCartProductsWithCommission();
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
createBraintreePaymentToken();
|
||||
private void getDataFromArguments(){
|
||||
braintreePaymentTokenModel = (PaymentTokenModel) getArguments().getSerializable("braintreePaymentTokenModel");
|
||||
if (braintreePaymentTokenModel != null && braintreePaymentTokenModel.getToken() != null){
|
||||
dropInClient = new DropInClient(CreateOrderSummaryFragment.this, braintreePaymentTokenModel.getToken());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == REQUEST_CODE_BRAINTREE_PAYMENT) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
DropInResult result = data.getParcelableExtra(DropInResult.EXTRA_DROP_IN_RESULT);
|
||||
createOrderActivity.setSelectedPaymentMethodForBraintree(result.getPaymentMethodType());
|
||||
createBraintreePayment(result);
|
||||
// use the result to update your UI and send the payment method nonce to your server
|
||||
} else if (resultCode == Activity.RESULT_CANCELED) {
|
||||
// the user canceled
|
||||
Log.i("fjehfhreuf", "vjfjvjfv");
|
||||
DialogHelper.showAlertDialog(BaseActivity.currentActivity, paymentCanceledText);
|
||||
} else {
|
||||
// handle errors here, an exception may be available in
|
||||
Exception error = (Exception) data.getSerializableExtra(DropInActivity.EXTRA_ERROR);
|
||||
DialogHelper.showAlertDialog(BaseActivity.currentActivity, error.getMessage());
|
||||
}
|
||||
public void onDropInSuccess(@NonNull DropInResult dropInResult) {
|
||||
if (dropInResult.getPaymentMethodType() != null && dropInResult.getPaymentMethodNonce() != null){
|
||||
createOrderActivity.setSelectedPaymentMethodForBraintree(dropInResult.getPaymentMethodType());
|
||||
createBraintreePayment(dropInResult);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDropInFailure(@NonNull Exception error) {
|
||||
DialogHelper.showAlertDialog(BaseActivity.currentActivity, error.getMessage());
|
||||
}
|
||||
|
||||
@OnClick({R.id.previousTextView, R.id.nextTextView})
|
||||
protected void onClick(View view){
|
||||
CreateOrderActivity createOrderActivity = (CreateOrderActivity) BaseActivity.currentActivity;
|
||||
@@ -869,46 +874,18 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
});
|
||||
}
|
||||
|
||||
private void createBraintreePaymentToken(){
|
||||
|
||||
Call<ResponseObject<PaymentTokenModel>> call = ApiService.apiInterface.createBraintreePaymentToken(
|
||||
"/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_CREATE_BRAINTREE_PAYMENT_TOKEN + SessionHelper.getCustomerToken().getToken());
|
||||
|
||||
call.enqueue(new Callback<ResponseObject<PaymentTokenModel>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ResponseObject<PaymentTokenModel>> call, Response<ResponseObject<PaymentTokenModel>> response) {
|
||||
if(response.isSuccessful() &&
|
||||
response.body().getData() != null &&
|
||||
response.body().isSuccess()){
|
||||
braintreePaymentTokenModel = response.body().getData();
|
||||
Log.i("fuhrfuhruhfr", "fhurhfurfhurfh");
|
||||
}
|
||||
else {
|
||||
ApiErrorUtils.parseError(response);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<ResponseObject<PaymentTokenModel>> call, Throwable t) {
|
||||
DialogHelper.showFailedDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void startBraintreePayment(){
|
||||
|
||||
// CVV kodu default olarak gozukmuyor.
|
||||
// Gozukmesi için braintree'ye login ol
|
||||
// Go to Settings --> Processing --> CVV --> Click on Edit --> Check option 'CVV not provided(l)', Enable option 'for any transaction'
|
||||
|
||||
if(braintreePaymentTokenModel == null ||braintreePaymentTokenModel.getToken().isEmpty()){
|
||||
if(braintreePaymentTokenModel == null || braintreePaymentTokenModel.getToken().isEmpty() || dropInClient == null){
|
||||
DialogHelper.showAlertDialog(BaseActivity.currentActivity, getString(R.string.something_went_wrong));
|
||||
return;
|
||||
}
|
||||
String amountStringForBraintree = PriceHelper.removeCurrencyFromPrice(createOrderActivity.getCartInfo().getCartTotalModel().getText());
|
||||
PayPalRequest paypalRequest = new PayPalRequest(amountStringForBraintree)
|
||||
.currencyCode("CHF");
|
||||
//.intent(PayPalRequest.INTENT_AUTHORIZE);
|
||||
//PayPalRequest paypalRequest = new PayPalRequest(amountStringForBraintree).currencyCode("CHF");//.intent(PayPalRequest.INTENT_AUTHORIZE);
|
||||
|
||||
/**
|
||||
* Paypal has two flow type: Vault and Checkout.
|
||||
@@ -926,16 +903,44 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
* https://developers.braintreepayments.com/guides/paypal/checkout-with-paypal/android/v3
|
||||
* https://developers.braintreepayments.com/guides/paypal/vault/javascript/v2
|
||||
*/
|
||||
DropInRequest paymentRequest = new DropInRequest()
|
||||
//.tokenizationKey(ApiConstants.BRAINTREE_TOKENIZATION_KEY_SANDBOX)
|
||||
//.tokenizationKey(ApiConstants.BRAINTREE_TOKENIZATION_KEY_PRODUCTION)
|
||||
//.clientToken("eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiI3NzY2ZmNmNTQ3MDc1YWMzMGZiNmIxMzU3MTI1ZTJmODc5YjM4MmNkOTcwYmYwZmYyNmQzMWJmNGRiYjI1MjQzfGNyZWF0ZWRfYXQ9MjAxOC0wNi0xM1QxODo1Mzo0Mi4wODA4MDc5MDQrMDAwMFx1MDAyNm1lcmNoYW50X2lkPTM0OHBrOWNnZjNiZ3l3MmJcdTAwMjZwdWJsaWNfa2V5PTJuMjQ3ZHY4OWJxOXZtcHIiLCJjb25maWdVcmwiOiJodHRwczovL2FwaS5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvMzQ4cGs5Y2dmM2JneXcyYi9jbGllbnRfYXBpL3YxL2NvbmZpZ3VyYXRpb24iLCJjaGFsbGVuZ2VzIjpbXSwiZW52aXJvbm1lbnQiOiJzYW5kYm94IiwiY2xpZW50QXBpVXJsIjoiaHR0cHM6Ly9hcGkuc2FuZGJveC5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzLzM0OHBrOWNnZjNiZ3l3MmIvY2xpZW50X2FwaSIsImFzc2V0c1VybCI6Imh0dHBzOi8vYXNzZXRzLmJyYWludHJlZWdhdGV3YXkuY29tIiwiYXV0aFVybCI6Imh0dHBzOi8vYXV0aC52ZW5tby5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tIiwiYW5hbHl0aWNzIjp7InVybCI6Imh0dHBzOi8vb3JpZ2luLWFuYWx5dGljcy1zYW5kLnNhbmRib3guYnJhaW50cmVlLWFwaS5jb20vMzQ4cGs5Y2dmM2JneXcyYiJ9LCJ0aHJlZURTZWN1cmVFbmFibGVkIjp0cnVlLCJwYXlwYWxFbmFibGVkIjp0cnVlLCJwYXlwYWwiOnsiZGlzcGxheU5hbWUiOiJBY21lIFdpZGdldHMsIEx0ZC4gKFNhbmRib3gpIiwiY2xpZW50SWQiOm51bGwsInByaXZhY3lVcmwiOiJodHRwOi8vZXhhbXBsZS5jb20vcHAiLCJ1c2VyQWdyZWVtZW50VXJsIjoiaHR0cDovL2V4YW1wbGUuY29tL3RvcyIsImJhc2VVcmwiOiJodHRwczovL2Fzc2V0cy5icmFpbnRyZWVnYXRld2F5LmNvbSIsImFzc2V0c1VybCI6Imh0dHBzOi8vY2hlY2tvdXQucGF5cGFsLmNvbSIsImRpcmVjdEJhc2VVcmwiOm51bGwsImFsbG93SHR0cCI6dHJ1ZSwiZW52aXJvbm1lbnROb05ldHdvcmsiOnRydWUsImVudmlyb25tZW50Ijoib2ZmbGluZSIsInVudmV0dGVkTWVyY2hhbnQiOmZhbHNlLCJicmFpbnRyZWVDbGllbnRJZCI6Im1hc3RlcmNsaWVudDMiLCJiaWxsaW5nQWdyZWVtZW50c0VuYWJsZWQiOnRydWUsIm1lcmNoYW50QWNjb3VudElkIjoiYWNtZXdpZGdldHNsdGRzYW5kYm94IiwiY3VycmVuY3lJc29Db2RlIjoiVVNEIn0sIm1lcmNoYW50SWQiOiIzNDhwazljZ2YzYmd5dzJiIiwidmVubW8iOiJvZmYifQ==")
|
||||
.clientToken(braintreePaymentTokenModel.getToken())
|
||||
.requestThreeDSecureVerification(true)
|
||||
.amount(amountStringForBraintree)
|
||||
.disableAndroidPay()
|
||||
//.paypalRequest(paypalRequest)
|
||||
.disableVenmo();
|
||||
|
||||
UserModel user = SessionHelper.getUser();
|
||||
|
||||
ThreeDSecurePostalAddress threeDSecureBillingAddress = new ThreeDSecurePostalAddress();
|
||||
threeDSecureBillingAddress.setGivenName(user.getFirstname());
|
||||
threeDSecureBillingAddress.setSurname(user.getLastname());
|
||||
threeDSecureBillingAddress.setPhoneNumber(user.getTelephone());
|
||||
if (SessionHelper.getUserMainAddress() != null && SessionHelper.getUserMainAddress().getAddress() != null){
|
||||
threeDSecureBillingAddress.setExtendedAddress(SessionHelper.getUserMainAddress().getAddress());
|
||||
}
|
||||
|
||||
ThreeDSecurePostalAddress threeDSecureShippingAddress = new ThreeDSecurePostalAddress();
|
||||
threeDSecureShippingAddress.setGivenName(user.getFirstname());
|
||||
threeDSecureShippingAddress.setSurname(user.getLastname());
|
||||
threeDSecureShippingAddress.setPhoneNumber(user.getTelephone());
|
||||
threeDSecureShippingAddress.setExtendedAddress(createOrderActivity.getSelectedShippingAddress().getAddress());
|
||||
|
||||
ThreeDSecureAdditionalInformation ThreeDSecureAdditionalInformation = new ThreeDSecureAdditionalInformation();
|
||||
ThreeDSecureAdditionalInformation.setShippingAddress(threeDSecureShippingAddress);
|
||||
|
||||
ThreeDSecureRequest threeDSecureRequest = new ThreeDSecureRequest();
|
||||
threeDSecureRequest.setAmount(amountStringForBraintree);
|
||||
threeDSecureRequest.setEmail(user.getEmail());
|
||||
threeDSecureRequest.setBillingAddress(threeDSecureBillingAddress);
|
||||
threeDSecureRequest.setVersionRequested(VERSION_2);
|
||||
threeDSecureRequest.setAdditionalInformation(ThreeDSecureAdditionalInformation);
|
||||
|
||||
//DropInRequest paymentRequest = new DropInRequest(true);
|
||||
DropInRequest dropInRequest = new DropInRequest();
|
||||
dropInRequest.setThreeDSecureRequest(threeDSecureRequest);
|
||||
dropInRequest.setGooglePayDisabled(true);
|
||||
dropInRequest.setPayPalDisabled(true);
|
||||
dropInRequest.setVenmoDisabled(true);
|
||||
//paymentRequest.setPayPalRequest(paypalRequest);
|
||||
|
||||
dropInClient.setListener(this);
|
||||
dropInClient.launchDropIn(dropInRequest);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
@@ -959,7 +964,6 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
break;
|
||||
}
|
||||
*/
|
||||
startActivityForResult(paymentRequest.getIntent(BaseActivity.currentActivity), REQUEST_CODE_BRAINTREE_PAYMENT);
|
||||
}
|
||||
|
||||
private void createBraintreePayment(final DropInResult dropInResult){
|
||||
@@ -973,8 +977,8 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
DialogHelper.hideLoadingDialog();
|
||||
if(response.isSuccessful() &&
|
||||
response.body().getData() != null &&
|
||||
response.body().isSuccess()){
|
||||
createOrder(getCreateOrderParams(dropInResult.getPaymentMethodNonce().getNonce()));
|
||||
response.body().isSuccess() && dropInResult.getPaymentMethodNonce() != null){
|
||||
createOrder(getCreateOrderParams(dropInResult.getPaymentMethodNonce().getString()));
|
||||
}
|
||||
else {
|
||||
ApiErrorUtils.parseError(response);
|
||||
@@ -991,7 +995,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
|
||||
private HashMap<String, Object> getBraintreePaymentParams(DropInResult dropInResult){
|
||||
HashMap<String, Object> params = new HashMap<>();
|
||||
params.put("payment_method_nonce", dropInResult.getPaymentMethodNonce().getNonce());
|
||||
params.put("payment_method_nonce", dropInResult.getPaymentMethodNonce().getString());
|
||||
params.put("amount", PriceHelper.removeCurrencyFromPrice(createOrderActivity.getCartInfo().getCartTotalModel().getText()));
|
||||
return params;
|
||||
}
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
package ch.pizzalemon.android.helper;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.os.Build;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import ch.pizzalemon.android.R;
|
||||
import ch.pizzalemon.android.activity.BaseActivity;
|
||||
import ch.pizzalemon.android.activity.NavMode;
|
||||
|
||||
public class DisplayHelper {
|
||||
|
||||
@@ -32,13 +35,39 @@ public class DisplayHelper {
|
||||
return Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
public static void changeStatusColor() {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
|
||||
return;
|
||||
Window window = BaseActivity.currentActivity.getWindow();
|
||||
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||
window.setStatusBarColor(ContextCompat.getColor(BaseActivity.currentActivity, R.color.pizzalemon_dark_green));
|
||||
public static NavMode getNavMode() {
|
||||
// 1) Settings.Secure (Android 10+ çoğu OEM’de doğru)
|
||||
try {
|
||||
int s = android.provider.Settings.Secure.getInt(
|
||||
BaseActivity.currentActivity.getContentResolver(), "navigation_mode");
|
||||
if (s == 0) return NavMode.THREE_BUTTON;
|
||||
if (s == 2) return NavMode.GESTURE;
|
||||
} catch (android.provider.Settings.SettingNotFoundException ignore) { }
|
||||
|
||||
// 2) Framework config (cihaz resource üzerinden dene)
|
||||
int id = BaseActivity.currentActivity.getResources()
|
||||
.getIdentifier("config_navBarInteractionMode", "integer", "android");
|
||||
if (id != 0) {
|
||||
int mode = BaseActivity.currentActivity.getResources().getInteger(id);
|
||||
if (mode == 0) return NavMode.THREE_BUTTON;
|
||||
if (mode == 2) return NavMode.GESTURE;
|
||||
}
|
||||
|
||||
// 3) Fallback: WindowInsets (bunu view attached olduktan sonra çağır)
|
||||
View root = BaseActivity.currentActivity.getWindow().getDecorView();
|
||||
WindowInsetsCompat wi = ViewCompat.getRootWindowInsets(root);
|
||||
if (wi == null) return NavMode.UNKNOWN;
|
||||
|
||||
Insets nav = wi.getInsets(WindowInsetsCompat.Type.navigationBars());
|
||||
Insets gest = wi.getInsets(WindowInsetsCompat.Type.systemGestures());
|
||||
// Heuristik: gesture'da nav bar yok ya da çok küçük; systemGestures > 0 olur
|
||||
if (nav.bottom > 0 && gest.bottom == 0) return NavMode.THREE_BUTTON;
|
||||
if (nav.bottom == 0 && gest.bottom > 0) return NavMode.GESTURE;
|
||||
if (nav.bottom > 0 && gest.bottom > 0) {
|
||||
// Bazı OEM'lerde küçük nav + gesture birlikte gelebilir
|
||||
return (nav.bottom >= gest.bottom) ? NavMode.THREE_BUTTON : NavMode.GESTURE;
|
||||
}
|
||||
return NavMode.UNKNOWN;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
|
||||
import ch.pizzalemon.android.model.AddressModel;
|
||||
import ch.pizzalemon.android.model.CouponModel;
|
||||
import ch.pizzalemon.android.model.CouponType;
|
||||
import ch.pizzalemon.android.model.GeneralCouponModel;
|
||||
@@ -125,6 +126,14 @@ public class SessionHelper {
|
||||
SharedPrefsHelper.saveSessionId(sessionId);
|
||||
}
|
||||
|
||||
public static void saveUserMainAddress(AddressModel addressModel){
|
||||
SharedPrefsHelper.saveUserMainAddress(addressModel);
|
||||
}
|
||||
|
||||
public static AddressModel getUserMainAddress(){
|
||||
return SharedPrefsHelper.getUserMainAddress();
|
||||
}
|
||||
|
||||
public static Calendar getTokenDeathDate(String tokenDeathTime){
|
||||
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.util.ArrayList;
|
||||
|
||||
|
||||
import ch.pizzalemon.android.activity.BaseActivity;
|
||||
import ch.pizzalemon.android.model.AddressModel;
|
||||
import ch.pizzalemon.android.model.CategoryModel;
|
||||
import ch.pizzalemon.android.model.GeneralCouponModel;
|
||||
import ch.pizzalemon.android.model.PersonalCouponModel;
|
||||
@@ -41,6 +42,8 @@ public class SharedPrefsHelper {
|
||||
private static final String PREF_KEY_SELECTED_PERSONAL_COUPON = SHARED_PREFS_NAME + "selectedPersonalCoupon";
|
||||
private static final String PREF_KEY_SESSION_ID = SHARED_PREFS_NAME + "sessionId";
|
||||
|
||||
private static final String PREF_KEY_USER_MAIN_ADDRESS = SHARED_PREFS_NAME + "userMainAddress";
|
||||
|
||||
private static SharedPreferences sharedPreferences =
|
||||
BaseActivity.currentActivity
|
||||
.getSharedPreferences(SHARED_PREFS_NAME, MODE_PRIVATE);
|
||||
@@ -98,6 +101,7 @@ public class SharedPrefsHelper {
|
||||
editor.remove(PREF_KEY_SELECTED_GENERAL_COUPON);
|
||||
editor.remove(PREF_KEY_SELECTED_PERSONAL_COUPON);
|
||||
editor.remove(PREF_KEY_SESSION_ID);
|
||||
editor.remove(PREF_KEY_USER_MAIN_ADDRESS);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
@@ -227,6 +231,21 @@ public class SharedPrefsHelper {
|
||||
}
|
||||
|
||||
|
||||
public static void saveUserMainAddress(AddressModel addressModel){
|
||||
editor.putString(PREF_KEY_USER_MAIN_ADDRESS, gson.toJson(addressModel));
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public static AddressModel getUserMainAddress(){
|
||||
return gson.fromJson(sharedPreferences.getString(PREF_KEY_USER_MAIN_ADDRESS, ""), AddressModel.class);
|
||||
}
|
||||
|
||||
public static void clearUserMainAddress(){
|
||||
editor.remove(PREF_KEY_USER_MAIN_ADDRESS);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
public static void saveCategoryList(ArrayList<Category> cats){
|
||||
|
||||
|
||||
@@ -18,6 +18,12 @@ public class AddressModel {
|
||||
private String address;
|
||||
private boolean isSelected;
|
||||
|
||||
public AddressModel(String address){
|
||||
id = "";
|
||||
this.address = address;
|
||||
isSelected = true;
|
||||
}
|
||||
|
||||
private void checkNull(){
|
||||
|
||||
if(id == null)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package ch.pizzalemon.android.model;
|
||||
|
||||
public class PaymentTokenModel {
|
||||
import java.io.Serializable;
|
||||
|
||||
public class PaymentTokenModel implements Serializable {
|
||||
|
||||
private String token;
|
||||
|
||||
|
||||
@@ -3,8 +3,11 @@ package ch.pizzalemon.android.view;
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
|
||||
import android.os.Build;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
@@ -90,6 +93,10 @@ public class AppToolbar extends Toolbar {
|
||||
toolbarTitleTextView.setText(title);
|
||||
toolbarTitleTextView.setVisibility(VISIBLE);
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
FrameLayout spacerViewForStatusBar = rootView.findViewById(R.id.spacerViewForStatusBar);
|
||||
spacerViewForStatusBar.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
public Toolbar getToolbar() {
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
<com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
android:id="@+id/bottomNavigationView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?android:attr/actionBarSize"
|
||||
android:layout_height="wrap_content"
|
||||
app:itemIconTint="@drawable/selector_bottom_navigation_item"
|
||||
app:itemTextColor="@drawable/selector_bottom_navigation_item"
|
||||
android:background="@color/pizzalemon_dark_green"
|
||||
@@ -128,11 +128,11 @@
|
||||
android:layout_alignParentBottom="true"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/shoppingCartLayout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_marginBottom="-8dp"
|
||||
android:elevation="9dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
@@ -191,16 +191,4 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageButton
|
||||
android:id="@+id/shoppingCartButton"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:background="@drawable/background_button_cart"
|
||||
android:gravity="center"
|
||||
android:src="@drawable/ic_bottom_nav_item_cart_white"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerInParent="true"
|
||||
android:elevation="9dp"
|
||||
android:visibility="gone"/>
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -6,7 +6,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:ignore="MissingPrefix"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?android:attr/actionBarSize"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentInsetLeft="0dp"
|
||||
android:contentInsetStart="0dp"
|
||||
app:contentInsetLeft="0dp"
|
||||
@@ -17,72 +17,86 @@
|
||||
app:contentInsetEnd="0dp"
|
||||
android:background="@color/pizzalemon_dark_green">
|
||||
|
||||
<RelativeLayout
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/spacerViewForStatusBar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="28dp"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="?android:attr/actionBarSize">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/hamburgerIcon"
|
||||
android:layout_width="?android:attr/actionBarSize"
|
||||
android:layout_height="?android:attr/actionBarSize"
|
||||
android:padding="20dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:src="@drawable/ic_hamburger_menu"
|
||||
android:tint="@color/white"
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/hamburgerIcon"
|
||||
android:layout_width="?android:attr/actionBarSize"
|
||||
android:layout_height="?android:attr/actionBarSize"
|
||||
android:padding="20dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:src="@drawable/ic_hamburger_menu"
|
||||
android:tint="@color/white"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/closeIcon"
|
||||
android:layout_width="?android:attr/actionBarSize"
|
||||
android:layout_height="?android:attr/actionBarSize"
|
||||
android:padding="20dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:src="@drawable/ic_cancel"
|
||||
android:tint="@color/white"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/backIcon"
|
||||
android:layout_width="?android:attr/actionBarSize"
|
||||
android:layout_height="?android:attr/actionBarSize"
|
||||
android:padding="20dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:src="@drawable/ic_back"
|
||||
android:tint="@color/white"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/toolbarTitleTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:textSize="18sp"
|
||||
android:textColor="@color/white"
|
||||
fontPath="fonts/Quicksand-Bold.ttf"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="?android:attr/actionBarSize"
|
||||
android:layout_height="?android:attr/actionBarSize"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:padding="12dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:src="@drawable/pizzalemon_logo" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dp"
|
||||
android:background="@drawable/shadow"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/closeIcon"
|
||||
android:layout_width="?android:attr/actionBarSize"
|
||||
android:layout_height="?android:attr/actionBarSize"
|
||||
android:padding="20dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:src="@drawable/ic_cancel"
|
||||
android:tint="@color/white"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/backIcon"
|
||||
android:layout_width="?android:attr/actionBarSize"
|
||||
android:layout_height="?android:attr/actionBarSize"
|
||||
android:padding="20dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:src="@drawable/ic_back"
|
||||
android:tint="@color/white"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/toolbarTitleTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:textSize="18sp"
|
||||
android:textColor="@color/white"
|
||||
fontPath="fonts/Quicksand-Bold.ttf"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="?android:attr/actionBarSize"
|
||||
android:layout_height="?android:attr/actionBarSize"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:padding="12dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:src="@drawable/pizzalemon_logo" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dp"
|
||||
android:background="@drawable/shadow"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:visibility="gone"/>
|
||||
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
@@ -8,7 +8,7 @@ buildscript {
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:4.1.3'
|
||||
classpath 'com.android.tools.build:gradle:7.4.2'
|
||||
classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.10, 0.99.99]'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
@@ -24,6 +24,13 @@ allprojects {
|
||||
//maven { url 'https://jitpack.io' } https://stackoverflow.com/questions/50791632/could-not-find-any-version-that-matches-com-google-android-gmsplay-services-bas
|
||||
maven { url "https://www.jitpack.io" }
|
||||
maven { url "https://maven.google.com" }
|
||||
maven {
|
||||
url "https://cardinalcommerceprod.jfrog.io/artifactory/android"
|
||||
credentials {
|
||||
username 'braintree_team_sdk'
|
||||
password 'AKCp8jQcoDy2hxSWhDAUQKXLDPDx6NYRkqrgFLRc3qDrayg6rrCbJpsKKyMwaykVL8FWusJpp'
|
||||
}
|
||||
}
|
||||
flatDir {
|
||||
dirs 'libs'
|
||||
}
|
||||
|
||||
8
git_swapil_ssh_key
Normal file
8
git_swapil_ssh_key
Normal file
@@ -0,0 +1,8 @@
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABBsg2+q+t
|
||||
fWd4Qkq0jcub2MAAAAEAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAICHlCxIygA5nrIF9
|
||||
LrW6Wo0zPBnrc7gI4DKP6VV0cy3gAAAAoNSwzdQ9uXYqW38nQmjeIHxiV/p8JwC3jeNiPB
|
||||
XPJyJEenKf5CQ81n52uvAvURJ4aWU2h19O3KYstfEdLYoaIoie5CsDSYpkSA1/+HTyr/ng
|
||||
dPJGk4Gn5pBc3CFSfH6M2O2JAv33sG16CPWa7wjOjdCb3Zzghhm0tXhmv8hpHAMGF11Uci
|
||||
7rnYcJ7zN5I+zfi2GMce/0j3hN5uPJnFTlZzk=
|
||||
-----END OPENSSH PRIVATE KEY-----
|
||||
1
git_swapil_ssh_key.pub
Normal file
1
git_swapil_ssh_key.pub
Normal file
@@ -0,0 +1 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICHlCxIygA5nrIF9LrW6Wo0zPBnrc7gI4DKP6VV0cy3g mustafaicmen@gmail.com
|
||||
@@ -12,6 +12,7 @@
|
||||
android.enableJetifier=true
|
||||
android.useAndroidX=true
|
||||
org.gradle.jvmargs=-Xmx1536m
|
||||
android.aapt2Version=8.6.1-11315950
|
||||
|
||||
# When configured, Gradle will run in incubating parallel mode.
|
||||
# This option should only be used with decoupled projects. More details, visit
|
||||
|
||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-bin.zip
|
||||
|
||||
Reference in New Issue
Block a user