Repository: zhaozeyx/ImageEditor-android Branch: master Commit: 60ee4657fcb7 Files: 508 Total size: 23.5 MB Directory structure: gitextract_fjxa1tr2/ ├── .gitmodules ├── FotorSDKDemo/ │ ├── .classpath │ ├── .project │ ├── .settings/ │ │ └── org.eclipse.jdt.core.prefs │ ├── .svn/ │ │ ├── entries │ │ ├── format │ │ └── pristine/ │ │ ├── 00/ │ │ │ └── 007c052d3bf36519905116e5ed7a3f07cd0f8f82.svn-base │ │ ├── 03/ │ │ │ ├── 03036c275a2007f79ccdb5833685d86777990a3d.svn-base │ │ │ └── 03f507869edea3375849d714e1dc9cfec5915365.svn-base │ │ ├── 04/ │ │ │ └── 043b616c2477d480b1e37fd4fd00b17a76dfd790.svn-base │ │ ├── 06/ │ │ │ └── 06d3b6ec1b46b557debf4cc78ab2eadf0a3ac890.svn-base │ │ ├── 07/ │ │ │ ├── 070b79fa25398f4fa224b4626dd75e6c67df2c2e.svn-base │ │ │ └── 0725f572c56c70ce91d4d40c4d9204235ef23f9c.svn-base │ │ ├── 09/ │ │ │ └── 09da138ca7b7a7c3ee7571530448c97702d6de86.svn-base │ │ ├── 0a/ │ │ │ └── 0a0d9478ede46410d5989641dbb2939d1034ddc1.svn-base │ │ ├── 0b/ │ │ │ └── 0bbd0d2a43db36ec6f303a37a92e6ec6df5fcdab.svn-base │ │ ├── 0c/ │ │ │ ├── 0c4712419da14d194f0812257ba40bd32de21e40.svn-base │ │ │ └── 0c6d82a4c43926760c34d77cb7182c3167841513.svn-base │ │ ├── 0d/ │ │ │ └── 0d332441cbc270af2413544d854c84ccd4f39121.svn-base │ │ ├── 0f/ │ │ │ ├── 0f001a20db1399d973d388cc9ab42cb40947a0f5.svn-base │ │ │ └── 0fa23e0c9fe055fc7671e5d3a43a97ed7d2673e4.svn-base │ │ ├── 10/ │ │ │ ├── 104d538b6c30a22491607612ec934b942344d51d.svn-base │ │ │ ├── 107d8032c156f778a72d9d22eea333a7b1d6828c.svn-base │ │ │ ├── 108fa6b5bc6a26dee57333789683c3fd03e43f72.svn-base │ │ │ └── 10e6e2e4786dc34083c47b574d164731f1fd9db0.svn-base │ │ ├── 12/ │ │ │ ├── 12244ee01c7eff76c02a29c1743c3f3fdad680f2.svn-base │ │ │ ├── 123b32dee8c0916be7b254b6f92958e301dc6d0c.svn-base │ │ │ └── 12a1458fb42c49366faaed8171ddae503fb5ab15.svn-base │ │ ├── 14/ │ │ │ └── 14454e2904eeb2945f745569a5641f6769839ac1.svn-base │ │ ├── 15/ │ │ │ ├── 155e564c4426fb3b923154fa4e652fc6934ac4b9.svn-base │ │ │ └── 1580f8d4727c72100fc52e92b664f91347882eaa.svn-base │ │ ├── 16/ │ │ │ ├── 1616494bc0c12ac0a9ec007b1a0a586526b97064.svn-base │ │ │ ├── 165822de404fab27a653765a13ce0e1bd68ea6d2.svn-base │ │ │ ├── 165871e9fbe703c514e6adbf425510f41865537d.svn-base │ │ │ ├── 16e6bad324c8afd2ad94a72688202ed35b39511f.svn-base │ │ │ └── 16f1cbcb8a37822a0795b2dafdfc6c1ad5d798b1.svn-base │ │ ├── 17/ │ │ │ ├── 172d1b11e61be611435d28b57f5c848e5f00a038.svn-base │ │ │ ├── 1739a53b8c116fe6691b61e33ddec01d97e88878.svn-base │ │ │ ├── 173b4efba62c8e1113726445e7ca5aab8fbe51fb.svn-base │ │ │ ├── 179b81766b82ed39dc92cafa39d3140d117e9637.svn-base │ │ │ └── 17dfcdbb7b1dd5f61b8f9ff7131397bdcdff5dae.svn-base │ │ ├── 18/ │ │ │ ├── 1869f22f6b2ae8d22c81f06af763a8f1c48f39bf.svn-base │ │ │ └── 18e37823a1a26d7253b1cfdd6d45c68dad171fff.svn-base │ │ ├── 19/ │ │ │ ├── 191dda7a5142990cd980727d43b27e4802f0b321.svn-base │ │ │ └── 19840b185149d6750f70ab0d662e03832a107e80.svn-base │ │ ├── 1a/ │ │ │ └── 1a1b6d8c445a427921c3000c1383e598f708b67b.svn-base │ │ ├── 1b/ │ │ │ ├── 1b00ad5c9d4d27518135c964ede6ab2d4fa2597e.svn-base │ │ │ ├── 1b4b9d2f338f72d6dade85a786a23c82331387aa.svn-base │ │ │ ├── 1b88893b7d15e5c0e680f5db6160020631f388f1.svn-base │ │ │ └── 1bf19c2085868b9447cdf0163855885cc7994c89.svn-base │ │ ├── 1e/ │ │ │ └── 1e0c2f74c138a1c6e42f01daa9a597812019d80e.svn-base │ │ ├── 22/ │ │ │ └── 224d797b86b58491a29f35119a810b08d32268bf.svn-base │ │ ├── 23/ │ │ │ └── 239ad79ba8eb1fd4dc046c18a81c00a63915f5b8.svn-base │ │ ├── 25/ │ │ │ └── 252634a2dcbfd05ca7e5b69889f036a62f6adb25.svn-base │ │ ├── 26/ │ │ │ ├── 262ed8683d11c1453b35d0107fe7abd58cbc1ed4.svn-base │ │ │ ├── 2669873f891113a8f45506e825d0215306e95405.svn-base │ │ │ └── 26836d081bcdd55e342d42c41930a2c8080d4c3b.svn-base │ │ ├── 27/ │ │ │ ├── 2709b25879bca9f06f1ad9a29b0dc3d38267c407.svn-base │ │ │ ├── 275269bd2e1ccac503cb43fc0c7f8efe6ae6f57a.svn-base │ │ │ └── 27e5804d4d2cb888b89e5cfabb6824fcb97950e0.svn-base │ │ ├── 28/ │ │ │ └── 28cc16730e4f03f97e077efa04843148f7f0eb0b.svn-base │ │ ├── 29/ │ │ │ └── 297b7d83ff620a5063ef13a4a650586581f249da.svn-base │ │ ├── 2a/ │ │ │ └── 2a16925f63f02ed070592452b023484c8c7d74f9.svn-base │ │ ├── 2b/ │ │ │ ├── 2b9183863aa41af4a9ee6872efbec38dbe4ee4c0.svn-base │ │ │ └── 2bc97b9c0275e37344ebaec28f1e1e703b122e04.svn-base │ │ ├── 2e/ │ │ │ └── 2e7d9e357d7755af2a9c4fd6e66360bb46fada11.svn-base │ │ ├── 2f/ │ │ │ ├── 2f837d0096fe345544ac838bf6ef47b6d28fd19f.svn-base │ │ │ └── 2fc798884e09b229a782e7521f0514af17907663.svn-base │ │ ├── 32/ │ │ │ ├── 3228fb7bd14e329a33acb71d67f2161e4d641b3a.svn-base │ │ │ └── 32ab37fc1f7804290cfc05b9eae0b6d2e94f90d4.svn-base │ │ ├── 33/ │ │ │ └── 3303039f37bb776905dd21392d2153fe149716a0.svn-base │ │ ├── 34/ │ │ │ └── 3414a69cf6720ad8b2c59b2a4ab567c194f7972c.svn-base │ │ ├── 35/ │ │ │ ├── 3515d10934a48b551b1402456f5b67b8666f229c.svn-base │ │ │ └── 35cfe1bbbf58a190d123162eec48db046f53f7ca.svn-base │ │ ├── 37/ │ │ │ └── 372b39f92fa0a3201ad76c089dc7a99b5f32f28c.svn-base │ │ ├── 39/ │ │ │ └── 393dbfa86a7dc3538ebd47205ca0b65178cbaf9d.svn-base │ │ ├── 3a/ │ │ │ └── 3a7f069c97e71ee06459dd0d2c206fa753b2c15b.svn-base │ │ ├── 3b/ │ │ │ ├── 3b39a316b1658bf923042467679ce119d1371bda.svn-base │ │ │ ├── 3b76a63e440aecbb07f6d8cf6779ce7f11f02331.svn-base │ │ │ └── 3bb5415d1f04c900bd4f8c1e4e7073d6d969d8a5.svn-base │ │ ├── 3c/ │ │ │ └── 3c755b5500ed67e7a115f31d4682bbdbedbb9973.svn-base │ │ ├── 3d/ │ │ │ └── 3d58e2b27ddffa35119d3683bb36f3c9df5be2d7.svn-base │ │ ├── 3e/ │ │ │ ├── 3e3d52eea62bb45233f43a2939d14cd6a04db981.svn-base │ │ │ ├── 3e57edbe2aee66098186d9259aaf0d9847723cdf.svn-base │ │ │ └── 3ef569381711504c6cb72917dc91c1a89b38600c.svn-base │ │ ├── 3f/ │ │ │ ├── 3f65e30173ed2b70e5f2b0fc95e5660ae9d22e0a.svn-base │ │ │ ├── 3f8064bff5f501960c5db56fd355a7caf85a73f4.svn-base │ │ │ └── 3f9be07312106e729adac94b70ed33cd8512cab8.svn-base │ │ ├── 40/ │ │ │ ├── 4002af0477e03ae32f1aabada0f53e97669a9dab.svn-base │ │ │ └── 4066c773d5eee4a1edff9004aaf56212998a8145.svn-base │ │ ├── 41/ │ │ │ ├── 41d153bc58aa386c2aecd8946ecc1097f65bf1ad.svn-base │ │ │ └── 41fd2f1067816433d8a79a157c52bebf37bb9710.svn-base │ │ ├── 42/ │ │ │ ├── 42d8c3015ce203c165397e1607e6f5d1d90ee430.svn-base │ │ │ └── 42dd3daecfa9192c08fee4bbd3bea78b14dd6e62.svn-base │ │ ├── 43/ │ │ │ └── 43ade5f94bd212b8f0341264306b882dec08eaf6.svn-base │ │ ├── 44/ │ │ │ ├── 440b1c7c54c53a5ca58fc8f0823de5efeefffbb9.svn-base │ │ │ └── 4456da451e2fd619e3db3ddc77b14d3baba318e6.svn-base │ │ ├── 46/ │ │ │ ├── 468d410c689c1252872ae74e1c239d08da105828.svn-base │ │ │ └── 46b4c15fb4ad1925a8d7e95736338aa7a9356b94.svn-base │ │ ├── 47/ │ │ │ ├── 47444bc050df100e3ecf6da3b32fc3e72cedd3d7.svn-base │ │ │ └── 47b0417634b07bfdb0ed6256262f4f2f4b7a856e.svn-base │ │ ├── 48/ │ │ │ ├── 480e04ab9ddceb857cf30c1b1b6010c6342537d8.svn-base │ │ │ ├── 4860d34e2aebd64d76ae4f5df50ad807e5e22c05.svn-base │ │ │ └── 48d0faccfb224bbe9894149933cb2854ad3bb694.svn-base │ │ ├── 49/ │ │ │ ├── 496f75bb24ef1405c8e73f308bdcb7151509d746.svn-base │ │ │ └── 49e8e2f8c12a1fac6aaead26e96250e9ba960448.svn-base │ │ ├── 4b/ │ │ │ └── 4b30bdfd51f28c45bfb86ab8484d8a7f7f6140e2.svn-base │ │ ├── 4c/ │ │ │ ├── 4c0d320756d2018b3f2c3544923a939b87533800.svn-base │ │ │ ├── 4c32cb13f7e191b3241c44246970ac9d7e713b92.svn-base │ │ │ ├── 4c4eccd7d41781575811c734b85d67dff6154e6b.svn-base │ │ │ ├── 4c4faf7a3fae4d0b1474561f0080995d358861ac.svn-base │ │ │ └── 4c5bd4126c5c64210feffebd6ca48c1598729d04.svn-base │ │ ├── 4d/ │ │ │ ├── 4d34f6dcb70ac598c17e6a49c25a45c02ce62a69.svn-base │ │ │ └── 4dd33b6bbbb432013ab6a03d74120988b1b5dafa.svn-base │ │ ├── 4e/ │ │ │ ├── 4e80bce2ed3fbd4a48bdff4f6f4164da875b96ff.svn-base │ │ │ └── 4ed0557b7ff4cf07aba37568ccbd1de038264078.svn-base │ │ ├── 4f/ │ │ │ ├── 4f53adf062407a2a7b2ca8256679b8900e465e4f.svn-base │ │ │ └── 4f80723c94375d498af0db25808f75960a2c2473.svn-base │ │ ├── 50/ │ │ │ ├── 502c0888a939f89f70dd678ab625659719dcacce.svn-base │ │ │ └── 503d1f813c4b3f792fefcfe3693e3482ea2dfd77.svn-base │ │ ├── 51/ │ │ │ ├── 51bbccc63169d80f42b31b3562188756e7faf856.svn-base │ │ │ └── 51bcd08afdd26bc974a8473c30ac0c048b8da256.svn-base │ │ ├── 52/ │ │ │ ├── 5204b3a546c606191efff19d064570f790216605.svn-base │ │ │ ├── 52763619fa4bc22e847c1090e05d1c003fc8b5c0.svn-base │ │ │ └── 52fda58379503aa334add378a8e6a4ab25584d9a.svn-base │ │ ├── 53/ │ │ │ ├── 5342792b4917f6669851bccfd223afc98762257b.svn-base │ │ │ └── 5387b7703a07a308df2d8e58a0cd74a04dc8d844.svn-base │ │ ├── 55/ │ │ │ └── 5584dabbab31939f13204652d7d2e00e7e2130ef.svn-base │ │ ├── 56/ │ │ │ └── 56eee8e2d7bb0a8d3373962f5d4280830d0c3908.svn-base │ │ ├── 59/ │ │ │ ├── 593c2912e1d6e6037ba4ece31b487feb1df3f601.svn-base │ │ │ ├── 599581f7be339f75fdc6bdf4a317ef9e445aaf2c.svn-base │ │ │ └── 59ae41053ff0da6ad22693246f56e0f70c0bea6d.svn-base │ │ ├── 5c/ │ │ │ ├── 5c1d209265523035372713c308b44f9031c72289.svn-base │ │ │ └── 5c6ec0fdfb0db138935bab6cd5aa839d97402c1c.svn-base │ │ ├── 5d/ │ │ │ └── 5dc4ab26970eb043b4c8f3cefad7adafb48caf6f.svn-base │ │ ├── 5e/ │ │ │ └── 5e65a8e05db6ab2aaa56fbd0e2ee6dd2e6e3474c.svn-base │ │ ├── 5f/ │ │ │ └── 5f0acebc023f848128fa38d876d9891373b56e2c.svn-base │ │ ├── 60/ │ │ │ ├── 60179bf9db929e9c2394ab9becc01b3dd3e9bed7.svn-base │ │ │ └── 601d0f18449ea3e367c25c0633849c1a5cf4a39c.svn-base │ │ ├── 61/ │ │ │ ├── 612b00017064ed21957aa415e9840fb677afae93.svn-base │ │ │ ├── 612fd096ed9ffb4a86958beb880d65ea39491c85.svn-base │ │ │ └── 61495c1a4b90699e58836c323869d04f06b15620.svn-base │ │ ├── 62/ │ │ │ ├── 6208926100d2583ba5d87f20227c4a604acd9382.svn-base │ │ │ ├── 62791a9f1067cdb03c5d1028ae0891b663242ef6.svn-base │ │ │ └── 62edbd46b41436760a3c09f3cadb3f1d82f28db2.svn-base │ │ ├── 63/ │ │ │ ├── 6367919ce43bfe92d5479523fec0a5680822c1ca.svn-base │ │ │ ├── 63b54e425f4ffad11fa680bc1cf572b119c86418.svn-base │ │ │ └── 63ffd23296a2f78874d5fb751bd707121208718d.svn-base │ │ ├── 64/ │ │ │ └── 64bc8985dfc7ed0da60e1b13c66003ac0f6a877b.svn-base │ │ ├── 65/ │ │ │ ├── 6544d280df4df7d91dcb06c7de3dcf4d4fcd2d46.svn-base │ │ │ └── 659a59cf3f55fb10ca29df177ef6ca4276fc1996.svn-base │ │ ├── 66/ │ │ │ └── 6697aafe3ac76941b99f9c07c26a770eb1b266df.svn-base │ │ ├── 67/ │ │ │ └── 67355c0eb0de2acb9cf3ae138f69c578ed984a61.svn-base │ │ ├── 68/ │ │ │ ├── 68431f32b8d9d7f351e3590a2e8101e9b8d4c84f.svn-base │ │ │ └── 68bcd275b049a2bb1d5cd85ca80e93beee19f2f1.svn-base │ │ ├── 69/ │ │ │ └── 6997711b22a183018edac09ed79a2e57207bdbd8.svn-base │ │ ├── 6b/ │ │ │ └── 6b685cd7417b2688e664013fbd943f808c27f0d5.svn-base │ │ ├── 6c/ │ │ │ └── 6cbb57ba2355cf442e06899898ff5af55867103e.svn-base │ │ ├── 6e/ │ │ │ ├── 6eaedbe74b81b8f220365b8eb6c3782366c41ab5.svn-base │ │ │ └── 6ec4ed1b695bb6308aed00f2632ad59b65fce1ed.svn-base │ │ ├── 70/ │ │ │ ├── 7028f8df21ad1ae3ba70044319215cb8c65d57eb.svn-base │ │ │ └── 7068771eeeda8df42bcb7520bc3f53472f83f0bb.svn-base │ │ ├── 73/ │ │ │ ├── 7398e363e0b9b636370da8a32e03de3dc22ed210.svn-base │ │ │ ├── 73aeadd07a4bf19a75548d38c69e16ad772cc336.svn-base │ │ │ ├── 73b168548249c4b9413f7457a66ba5b03df649bd.svn-base │ │ │ └── 73d74fd28b870be544e505b67990814bf8cfeeeb.svn-base │ │ ├── 74/ │ │ │ └── 74a30cd38611b15bb7ab53f135bf07c0fd7deb8a.svn-base │ │ ├── 75/ │ │ │ ├── 7531f57ac71678e8bdde440906a3023f46284b44.svn-base │ │ │ └── 753f88a86b7b62614582a464aa39815dcc11aa4e.svn-base │ │ ├── 76/ │ │ │ ├── 76558b9539f6f4bd47172a5967607d32699c3255.svn-base │ │ │ └── 768764aaceba888bd473a3474c94fb987e6b6ab0.svn-base │ │ ├── 79/ │ │ │ ├── 797620391aac9db219bd1056fb531e43e212ddbc.svn-base │ │ │ └── 79ecb6f98bbfd04362cf6c5dbeb1fb60283349f7.svn-base │ │ ├── 7b/ │ │ │ ├── 7b16254adba579fa7a8eb12b7ca9eaffd4cbadcd.svn-base │ │ │ ├── 7b93539091429ecbcf85d93278ecd2da2c9426ab.svn-base │ │ │ ├── 7bc56bf8abce95597491da4f75b6e04101d1c1d8.svn-base │ │ │ ├── 7bd52fef0b72d500aef22545fc4ae5c742d9180e.svn-base │ │ │ └── 7bf0670c68c92c203241c3e75f43bc714560f069.svn-base │ │ ├── 7c/ │ │ │ ├── 7c54016c22c06687e5e5e520639f75159fc26bd2.svn-base │ │ │ └── 7c97e2760e11fafed4bfa319faf395e0fc044b96.svn-base │ │ ├── 7d/ │ │ │ └── 7d77ecba550045d8b16f716b47443e93d2449011.svn-base │ │ ├── 7e/ │ │ │ ├── 7e42ba096935226fd75d16121c893a18a933d10f.svn-base │ │ │ └── 7eac42e387e1a7ab2099e86c2917dc0c4902258d.svn-base │ │ ├── 7f/ │ │ │ ├── 7f1b7c041a69b31c81c88a2460d0eabde0d3c8b2.svn-base │ │ │ ├── 7f4440893628e7afa0143d43f837417f2d181d7a.svn-base │ │ │ └── 7fc76dd4b7d2df42241b9e3b32fd541eb1a71229.svn-base │ │ ├── 80/ │ │ │ ├── 80478a6ea6a65c60dfb4f9a15c8cbf9c846389cc.svn-base │ │ │ ├── 8074f618dc6c8d65d890e1321493e2bf2a1d546d.svn-base │ │ │ ├── 80a5bf705cc6d7fa4b268670057ece4a18a40643.svn-base │ │ │ └── 80dcc9c26e7755d486fb5f8179ee107358391eea.svn-base │ │ ├── 81/ │ │ │ └── 81b8b4c54371b9e4d828afb28fbba7b53d337e14.svn-base │ │ ├── 82/ │ │ │ └── 8236e7e4c47bc975b8c27269dd01ae5f5cb62623.svn-base │ │ ├── 83/ │ │ │ └── 83ded14cdff196da97a2e0fa16d9415228191fa7.svn-base │ │ ├── 84/ │ │ │ ├── 841adfbc3a67a83630fe4e8d59323c9a65bc7dc9.svn-base │ │ │ ├── 844acf0a8d65b49a179e732d3cb60b769d1dc007.svn-base │ │ │ └── 8456cc789280d81f492033281bfe763a98195264.svn-base │ │ ├── 85/ │ │ │ ├── 85b0f4ac338ff0c57e79cb04a3484759505d43a6.svn-base │ │ │ └── 85bc1e0a10025b6c4aa345e7ada281b7a222be7b.svn-base │ │ ├── 86/ │ │ │ └── 8666e41075ef94a78ac595afbd1c22057881f2ea.svn-base │ │ ├── 87/ │ │ │ └── 87ed1a7971ff8316e9c06cab3aa24a66628f5fd5.svn-base │ │ ├── 88/ │ │ │ ├── 88086200176fa4174716c1498413d31868152bbf.svn-base │ │ │ ├── 88672128e482f81485780d785042a0de90653ccf.svn-base │ │ │ ├── 8877102eb0092dca155a7912553a38ea59dd0b7d.svn-base │ │ │ └── 88e26cba511daf4293934d16cb43938d0f85a18a.svn-base │ │ ├── 89/ │ │ │ ├── 890bb47791489368e99c0195e65da1893d5298e5.svn-base │ │ │ └── 897466afec487ac93b1e691b0d32c053921d703d.svn-base │ │ ├── 8a/ │ │ │ ├── 8a10f97888d40f0e95f38492c4a52b78328605f3.svn-base │ │ │ ├── 8a55f6711de24bf36b97d208f5637250973bfb3a.svn-base │ │ │ └── 8aebfef98a46c693de082a3e6e56cee2abe2b4ca.svn-base │ │ ├── 8b/ │ │ │ ├── 8b28bb3beba839e479e84a54e71be7c78e8200de.svn-base │ │ │ └── 8be257bc5d7693f62e1a362b1c456a5d0b72705d.svn-base │ │ ├── 8c/ │ │ │ └── 8cb1a48fc88581b7e2e5855e1238c7da80cd3938.svn-base │ │ ├── 8f/ │ │ │ └── 8fcbd6375e2dd1996cedaaf7e3a8950364b886a0.svn-base │ │ ├── 91/ │ │ │ └── 918df1128aa29e930b499ddb9717293a7c7edd6d.svn-base │ │ ├── 92/ │ │ │ └── 92fd8928bd6e3b7a6c8d6f6828a173bc2fb1dcdb.svn-base │ │ ├── 93/ │ │ │ ├── 9378ea4758918618f3ca68b1b623f88a4bc9eead.svn-base │ │ │ └── 93fcdfc6f7ce4a7199de5dec48fbc17f323a6608.svn-base │ │ ├── 95/ │ │ │ ├── 957576b7f86587b65e7b367409d8473b0431c393.svn-base │ │ │ ├── 95a4eb3af29a3beeabbde817bc588a78ddf10e0d.svn-base │ │ │ └── 95abf644e02a344ce785c4da92c0dd5c26415b7a.svn-base │ │ ├── 97/ │ │ │ ├── 9707a98557c27c45d90c32909d80a884476b8587.svn-base │ │ │ ├── 97353b50fffbf78461e06e7df8ce8ed73c3b3ff0.svn-base │ │ │ └── 975756f4219c90758891f1964f8028cecfb2c675.svn-base │ │ ├── 98/ │ │ │ └── 98b66fdda8255fcf8ded6b705517aa48216218d6.svn-base │ │ ├── 99/ │ │ │ ├── 9955f7f1e3c0db05fb428b4fd3e16eacc7402ae9.svn-base │ │ │ └── 9969bc387bfdd8297a5fa77945b20785b603fd97.svn-base │ │ ├── 9a/ │ │ │ ├── 9a475952207ff615974d1a3613e391d02b0f0dea.svn-base │ │ │ ├── 9a641c4736e3d8f1a8c5f064a9108e7a29f03bd6.svn-base │ │ │ └── 9ada2c0e806321f9bb3c7a6ce49707c4fdf664e1.svn-base │ │ ├── 9c/ │ │ │ └── 9ccd2c84d73f450dc85be59fecf942f336a06eb9.svn-base │ │ ├── 9d/ │ │ │ └── 9da5972490b164e1b1bbaede6cbd9a8dac321e16.svn-base │ │ ├── 9e/ │ │ │ └── 9efa9da8094116c00abbe5caf55d4f981d21cf26.svn-base │ │ ├── 9f/ │ │ │ ├── 9f6bfa62aa76b00c6effa5bdd5ddc809c7eb25d2.svn-base │ │ │ ├── 9fa6a1ec83aa21110077788d9080718fe80ded47.svn-base │ │ │ ├── 9fe5c764d6c2df51a97f6ea72642b71de6e49d74.svn-base │ │ │ └── 9ff96ba0dbe9a1dc3994a9ac334ae84253988a32.svn-base │ │ ├── a0/ │ │ │ ├── a058978066e296310b0224baa3e95484f15c8f3d.svn-base │ │ │ ├── a058a76398ee1d977c3ccb9d799c5f02cf987f40.svn-base │ │ │ └── a0c199fb0c472339da61f359c26d6ed7be09a81a.svn-base │ │ ├── a1/ │ │ │ └── a1e3bda0c91a5191ca1dea31f45dcfe834accc4a.svn-base │ │ ├── a3/ │ │ │ ├── a33eeaaaff41f46520323424ca79e399e2d53af2.svn-base │ │ │ ├── a38075b8fb1b83550f1a05dacf4605786fe578aa.svn-base │ │ │ └── a396b072ee70577a67f05e9a3e191e6b53027175.svn-base │ │ ├── a4/ │ │ │ ├── a40ab46d233a41873b0b6305185cec21dd3eafbb.svn-base │ │ │ └── a479407b3caaa90ad4a148d5455163b49b4215a6.svn-base │ │ ├── a5/ │ │ │ ├── a51ab63cb226b77e4b11c7d516e0259a5f747e93.svn-base │ │ │ ├── a556148b66359e94f7ccde75022d7b2b489d8164.svn-base │ │ │ └── a5b5ca45da347e01b26e995a77d7ef21006ad211.svn-base │ │ ├── a6/ │ │ │ ├── a6eaa9c8a5673577177d7ba1716963e4d6eb2c99.svn-base │ │ │ └── a6f6b0da9fa33debc4577ba5f27723e8ecdc4d9d.svn-base │ │ ├── a8/ │ │ │ ├── a84eb6e222dc8904c5558e435007c6f092727b7a.svn-base │ │ │ ├── a8692537e0f47513d72685cbafb1b5f4109ecad3.svn-base │ │ │ ├── a869edc0b1dd4338f482e20397e2dbe62912a059.svn-base │ │ │ └── a86c614156384f301eb403398a3997097b05d62b.svn-base │ │ ├── a9/ │ │ │ ├── a98cecac96dab90bff5a7d390e2b08b5297a8e48.svn-base │ │ │ └── a9bfa28be6d44bc8d9141b6de3cb79ce07e18896.svn-base │ │ ├── aa/ │ │ │ ├── aa1f5f1723de9aee2669dc44a26fbc0ce776d35f.svn-base │ │ │ └── aa91bd20a01c02603ac8f4df60bef48758548c2d.svn-base │ │ ├── ab/ │ │ │ ├── ab6b7ab673e2ad57e58f43cf6df469e7660c1182.svn-base │ │ │ └── abe54d476058834734160b48fae6bc5471b8c286.svn-base │ │ ├── ac/ │ │ │ └── ac007b202d175b1dbeee1e0b39c40b9bf2aaf2d1.svn-base │ │ ├── ad/ │ │ │ ├── ad47ceaace42ef6f11b3aa1053ca4cd5b7690453.svn-base │ │ │ ├── ad9e9267bc0cf1e8dd2be128bc64261b575b012a.svn-base │ │ │ ├── ada4e79c592f3c54546b7587b48f2b232d95ce2f.svn-base │ │ │ └── adda71dce0dbafaa465632a171aea826b0827811.svn-base │ │ ├── af/ │ │ │ ├── af94415c039bc36f20fbe1a2879838752bcc261b.svn-base │ │ │ ├── afaa4cc1820f9992969da150808bc0b865975646.svn-base │ │ │ └── afc1bf1787c384436565994646909db35fe7e06f.svn-base │ │ ├── b1/ │ │ │ ├── b129b276e01126de5b3b753572ac67cbfc19454c.svn-base │ │ │ ├── b1635c8c489c829078124cb786ddef7fa6874308.svn-base │ │ │ └── b17381433e988ec03360565dbe335798109b0ce5.svn-base │ │ ├── b3/ │ │ │ └── b331a6ca47e1ef2d3b5a05ddec3284e368eac891.svn-base │ │ ├── b4/ │ │ │ ├── b4009a4a73e3d207910decdd4c081653fc95ff2d.svn-base │ │ │ ├── b40958146e888a9831f92e71c21822d9aad33ac2.svn-base │ │ │ └── b47317a6d4f96222e98001583822da7a10e1666a.svn-base │ │ ├── b5/ │ │ │ ├── b56b06dc60421a7f13ee470af0aa108b7cc4aaf9.svn-base │ │ │ └── b5a923804f15b9b66af6f011650509c196365dc6.svn-base │ │ ├── b6/ │ │ │ ├── b60de2ae0e779f56470d60616f20e0a2c2691125.svn-base │ │ │ ├── b63a097de0cd21e7c8acb72e4604812de94ee27a.svn-base │ │ │ ├── b686a1f6d9b224580847d33a8c9e9cd4121385f5.svn-base │ │ │ └── b6f7ae0cdeccc15fddcaf944fd79f0caeee9c8e1.svn-base │ │ ├── b7/ │ │ │ ├── b71bbcc3ed5f313aab07143365c17954dea611cb.svn-base │ │ │ ├── b786870b4a198837c81a932a5573ed97c1f9b330.svn-base │ │ │ └── b7c7bda0c8206ab1507ad2a8b5b984a47d35a7bb.svn-base │ │ ├── b9/ │ │ │ └── b9f3ebab942f1fcc978988f97adaba308bbc3856.svn-base │ │ ├── ba/ │ │ │ └── bab668937569a81f8a7a4fdc7e146a7d7826a792.svn-base │ │ ├── bc/ │ │ │ └── bcd3faaa6cf5fd61ba5cca28fc53f3869efba6ef.svn-base │ │ ├── be/ │ │ │ ├── be343c7a300518d0b06505feb2c6bf524ef6998a.svn-base │ │ │ ├── be3779509db63a31d913a3e15a12838ecf547eb2.svn-base │ │ │ ├── be40a3f348e92fa26d7a9415c20ce799bda9dbd1.svn-base │ │ │ └── be4d34e022dbfb44d613b8a71dbd21aed8f7da06.svn-base │ │ ├── bf/ │ │ │ ├── bf36db30fd21f62ccce05ce06bf8ee5cdcf2786d.svn-base │ │ │ ├── bf44fee7478e97bd8be7ec343d88043770203c01.svn-base │ │ │ ├── bf9edbaaf9211827d72bbbea4ac10d79b4be0342.svn-base │ │ │ └── bfba80a118cd69053907bc7a4f976170aade4ca5.svn-base │ │ ├── c1/ │ │ │ ├── c12d079a9312a79aad891259e664728a8057ec3a.svn-base │ │ │ └── c1e4d4bbc841c60acadc4462a9b382249970efc9.svn-base │ │ ├── c2/ │ │ │ ├── c23441412ad977e31ea47c1c9a36b40e7ccfd9ed.svn-base │ │ │ ├── c278741bd0108d9182b97e725bc3b379e065218c.svn-base │ │ │ └── c2c73d6a2e7bbbb96d7bc4ea437dc3f1fa91def2.svn-base │ │ ├── c3/ │ │ │ ├── c361a1934353fda13cdbc2ac52126d7985c42f9d.svn-base │ │ │ └── c3a026561fa183457b2a6d76c8ff1c41571de3e5.svn-base │ │ ├── c4/ │ │ │ └── c45b011a7116d9ca54d4a6016811dba3b50daa14.svn-base │ │ ├── c6/ │ │ │ ├── c638ea07b1de337b786d0e0abe47669d7c9a1428.svn-base │ │ │ ├── c6e1a35379d80ed828362d06550f07ad3054cc18.svn-base │ │ │ └── c6feb3d2b900dec157b8b1050c03098b1d54e0f2.svn-base │ │ ├── c7/ │ │ │ ├── c712a89e025f89b1f35a526056f8de9b27cd5432.svn-base │ │ │ └── c76f4caaa7a8dfe9727fa93001b3aee3b22d6716.svn-base │ │ ├── c8/ │ │ │ └── c8599aad41212c2740da5be7edf2e2c783ca6b3c.svn-base │ │ ├── c9/ │ │ │ └── c9518b821ffb7bfc3632d6f3af2018f985a490c3.svn-base │ │ ├── ca/ │ │ │ ├── ca5ac963516a5057ae67d746a6c9cb6fc0e04a5e.svn-base │ │ │ ├── ca5b6be5c09bf337b98c9ae5f0003e71351cdc84.svn-base │ │ │ └── ca8091b80dea573a1ea2c28067ed367e01d14fe9.svn-base │ │ ├── cb/ │ │ │ ├── cbcc5604c6d3a15c5b87d05a883343d7630801f5.svn-base │ │ │ ├── cbde224812c451797dea193746131a8c2f048f13.svn-base │ │ │ └── cbe4a05099ac445ef830ab5fde3394f24d853d1f.svn-base │ │ ├── cc/ │ │ │ ├── cc20d32e79cef0c3a4289b3e8b3bfe689b8ffbc8.svn-base │ │ │ └── ccbfb0bce061fdc77c89d57b79abababbe498b25.svn-base │ │ ├── cd/ │ │ │ └── cd7215fe350967f1e47750410d3895fa64b67cd5.svn-base │ │ ├── ce/ │ │ │ └── ce0c900b469d63102449e5f0464d512f5e1cfa6a.svn-base │ │ ├── cf/ │ │ │ └── cfd8aee1dfa3a986779be752fceaf93ec25ccb8e.svn-base │ │ ├── d1/ │ │ │ └── d1e05eac04f47b8f5e04a99056b30a4e1a954162.svn-base │ │ ├── d2/ │ │ │ ├── d2c70b5f789a420e8fb9aafe2f197a7d852acf47.svn-base │ │ │ ├── d2cf8c1c7967e5c36aee75d35aa80376db1464aa.svn-base │ │ │ └── d2d1c889e08d06619782c4bad9c91d7a7e538d60.svn-base │ │ ├── d3/ │ │ │ ├── d31623333701c5ff60ebd7196947317dac321611.svn-base │ │ │ └── d3b208c47b61dc5d806f1cbf82c17d48aa8ac56c.svn-base │ │ ├── d7/ │ │ │ ├── d746fd0f09198fe8afc04b64bddd20d9909584ed.svn-base │ │ │ ├── d77875a80caf9f60108f1a3cdcbc25ed7cce8e70.svn-base │ │ │ └── d78b2a93bc81d9fa5ed3d59ab27a8126572b05d7.svn-base │ │ ├── d8/ │ │ │ └── d853ff8733cc94c652fd4009c4829e91d804a438.svn-base │ │ ├── da/ │ │ │ ├── da5b3c7758a2c8fbc4775beb69d7150493c7d312.svn-base │ │ │ └── da770fb0f41f62c3c00ea1980d072e9002bd7160.svn-base │ │ ├── db/ │ │ │ ├── db7036fb113dd74422a670234ac70c592144a735.svn-base │ │ │ ├── dbc355ff8abc521b647b71ca680ced7969d797a5.svn-base │ │ │ └── dbfff77ed8b045f7db605f34bd6894b81f471e40.svn-base │ │ ├── dc/ │ │ │ └── dcd167d5e96c34dcb4ff9f14b0a3a688e8e3ea7d.svn-base │ │ ├── dd/ │ │ │ ├── dd476b2d84d744357129a743cd223f9a7264dd29.svn-base │ │ │ └── dd5bd29e374c5fb3226d8a32f075530fee38233c.svn-base │ │ ├── de/ │ │ │ ├── de6f49396ddbfe9f2bb48d8c0bb1b87b6736d394.svn-base │ │ │ └── def85b8417714285df94a8c429a38b2a4b7484c1.svn-base │ │ ├── df/ │ │ │ ├── df0f5d0b5f31ecda385c991122d3c8c14fc8e50c.svn-base │ │ │ ├── df12c72fbf4c9efa7ced7128be02be12d28f8be2.svn-base │ │ │ └── dff6fa5bd214c31be5f3588dcef7d57da534c3ea.svn-base │ │ ├── e0/ │ │ │ └── e07142877c4eb9e1286f5302ec954a033c97b3c1.svn-base │ │ ├── e1/ │ │ │ ├── e12d1118511ba975aabcc8987e48193b2af082f8.svn-base │ │ │ └── e1923b7bb2208269faa9a2ff3d9826644834258c.svn-base │ │ ├── e4/ │ │ │ ├── e43b48babff7cb8eca0cbf3b3844a6e9375669cd.svn-base │ │ │ └── e447e13ff6f0f413f8595310d684cd25b3cf83e2.svn-base │ │ ├── e5/ │ │ │ ├── e58d1d1cca31823b6c949d25e3f910163baff087.svn-base │ │ │ └── e5fd87210cf8e3134cdf6db3ca6e4bb5e763fd39.svn-base │ │ ├── e6/ │ │ │ └── e60ba4b1e604a91cbe0e23965a2a47c9ae162476.svn-base │ │ ├── e8/ │ │ │ └── e802dc31ea7817e0e611f26f527618269e7b9895.svn-base │ │ ├── e9/ │ │ │ └── e96d06cd852b2e38a834eae0a70227ff41473ed7.svn-base │ │ ├── ea/ │ │ │ └── ea4266f88f97fb3a72c675d0056d65854cdaf098.svn-base │ │ ├── eb/ │ │ │ ├── eb5cb6780e790de938491dd439facbd16aa76dfa.svn-base │ │ │ ├── eb844ede23583a249f97de2c1bffb026607b4061.svn-base │ │ │ ├── eb91474a5fbe05784d1169e1bd1af97911acdfe7.svn-base │ │ │ └── eb9432dc005620dfc56c26598263c84b0bdac403.svn-base │ │ ├── ec/ │ │ │ ├── ec17221211c0d4f95cbd5d9586967d5c1bd4cbb1.svn-base │ │ │ ├── ec2d462cec313ade3c58f5193873d2bb9392de97.svn-base │ │ │ ├── ec39671c29894db3fa1977b3a37dfd3796c7c8bc.svn-base │ │ │ └── ec5e2b3cae849767bc704510ce8fac611180af2a.svn-base │ │ ├── ef/ │ │ │ └── efe256fdd63c4486557689c1dbae7c407b319a7e.svn-base │ │ ├── f0/ │ │ │ ├── f02ae36481e291d73b0abad69380b45538736860.svn-base │ │ │ └── f04e16007b6097d0117dedf39885527f1c2a245b.svn-base │ │ ├── f1/ │ │ │ ├── f109f78440f665b87980bd24ce0d251550b41c10.svn-base │ │ │ ├── f14d9e38fb84776985991713c82bf11019b4b9e6.svn-base │ │ │ ├── f1571592a039ac77a7f934df44222f51f12cee3d.svn-base │ │ │ ├── f1b2c78e811175926d162a5088dc55f156b79264.svn-base │ │ │ ├── f1c1123bcbbd3963df8bda3a7e16b48b14002c1d.svn-base │ │ │ └── f1d8ae845851c1a4fdbca366edfe52d2a82b604b.svn-base │ │ ├── f4/ │ │ │ ├── f43aaa9f62337c5705fd8e2535183079cd29919d.svn-base │ │ │ ├── f45af3d6c723b33989095512f39d1633232d67d7.svn-base │ │ │ └── f4e87fa56dd0ace818ffda464feddb69ef999c97.svn-base │ │ ├── f5/ │ │ │ └── f525b45eee5955c2e441a3dcbccaaf97ee1dfaf5.svn-base │ │ ├── f6/ │ │ │ ├── f6353681bbae89f42162fe94487fbd5dbd178aed.svn-base │ │ │ ├── f64ba160ee74df3c84bb9c12b6d06ad3f2906898.svn-base │ │ │ └── f6d34d93400d5ddbc73d904d5e8dbb99a38257b3.svn-base │ │ ├── f8/ │ │ │ ├── f8208d7c9099f63467832af0e58aab0108a6914f.svn-base │ │ │ ├── f8c8cf0dea3d095e7207c2ce537bafd0ee8d1127.svn-base │ │ │ └── f8cbe1b82ece1fbd3ca3693a0f6ebc75c3358ec2.svn-base │ │ ├── fa/ │ │ │ ├── fa0ddb92bbb11c23ead942147bf4d68e4c0547b5.svn-base │ │ │ └── fa13a5cdfb112cbf1dd7970583865c6a1b366285.svn-base │ │ ├── fb/ │ │ │ ├── fb3c77eb561a6439d8e4cf4495bd45af2ec726c3.svn-base │ │ │ ├── fb633c4085ddbd5f5d2575c5ee38aae909346613.svn-base │ │ │ ├── fbb361a11dd38e238ed9c73a05a57870dda79dd7.svn-base │ │ │ └── fbe4da581317f12178bd812963ba961f0da8bcf7.svn-base │ │ ├── fc/ │ │ │ └── fce80b1ca55cc48ef67a1336156c362e41a98c1d.svn-base │ │ └── ff/ │ │ ├── ff8404bbffc5935a8deae296970b410b56f2be02.svn-base │ │ └── ffb9369fe3688fcdb52ceb0d6d46bbbd6d909e7e.svn-base │ ├── AndroidManifest.xml │ ├── assets/ │ │ ├── border_config/ │ │ │ ├── Gallery/ │ │ │ │ ├── 10M.xml │ │ │ │ ├── 118S.xml │ │ │ │ ├── 3M.xml │ │ │ │ ├── 41M.xml │ │ │ │ ├── 42M.xml │ │ │ │ └── Config.json │ │ │ ├── Simple/ │ │ │ │ ├── 23M.xml │ │ │ │ ├── 29M.xml │ │ │ │ ├── 2M.xml │ │ │ │ ├── 36M.xml │ │ │ │ ├── 38M.xml │ │ │ │ └── Config.json │ │ │ └── Styled/ │ │ │ ├── 30S.xml │ │ │ ├── 37S.xml │ │ │ ├── 43S.xml │ │ │ ├── 49S.xml │ │ │ ├── 51S.xml │ │ │ └── Config.json │ │ ├── fonts_config/ │ │ │ ├── Charm/ │ │ │ │ └── Config.json │ │ │ └── Classic/ │ │ │ └── Config.json │ │ ├── fonts_res/ │ │ │ ├── AmericanTypewriter.ttc │ │ │ ├── Garogier.otf │ │ │ ├── Miama.otf │ │ │ ├── Noteworthy.ttc │ │ │ ├── Sofia.otf │ │ │ └── Stencil Std.otf │ │ ├── fx_config/ │ │ │ ├── Analog/ │ │ │ │ ├── 11.xml │ │ │ │ ├── 27.xml │ │ │ │ ├── 73.xml │ │ │ │ ├── 74.xml │ │ │ │ ├── 75.xml │ │ │ │ ├── 76.xml │ │ │ │ ├── 78.xml │ │ │ │ ├── 80.xml │ │ │ │ └── Config.json │ │ │ ├── Lomo/ │ │ │ │ ├── 1.xml │ │ │ │ ├── 10.xml │ │ │ │ ├── 102.xml │ │ │ │ ├── 103.xml │ │ │ │ ├── 2.xml │ │ │ │ ├── 23.xml │ │ │ │ ├── 4.xml │ │ │ │ ├── 5.xml │ │ │ │ ├── 7.xml │ │ │ │ └── Config.json │ │ │ ├── OldPicture/ │ │ │ │ ├── 10.xml │ │ │ │ ├── 111.xml │ │ │ │ ├── 112.xml │ │ │ │ ├── 114.xml │ │ │ │ ├── 28.xml │ │ │ │ ├── 6.xml │ │ │ │ └── Config.json │ │ │ ├── Retro/ │ │ │ │ ├── 104.xml │ │ │ │ ├── 118.xml │ │ │ │ ├── 16.xml │ │ │ │ ├── 17.xml │ │ │ │ ├── 8.xml │ │ │ │ ├── 9.xml │ │ │ │ └── Config.json │ │ │ └── Vintage/ │ │ │ ├── 108.xml │ │ │ ├── 109.xml │ │ │ ├── 110.xml │ │ │ ├── 6.xml │ │ │ ├── 91.xml │ │ │ ├── 93.xml │ │ │ └── Config.json │ │ ├── scenes/ │ │ │ ├── 160.xml │ │ │ ├── 161.xml │ │ │ ├── 162.xml │ │ │ ├── 163.xml │ │ │ ├── 164.xml │ │ │ ├── 165.xml │ │ │ ├── 166.xml │ │ │ ├── 167.xml │ │ │ ├── 168.xml │ │ │ ├── 169.xml │ │ │ ├── 170.xml │ │ │ ├── 171.xml │ │ │ └── 173.xml │ │ └── stickers_config/ │ │ ├── Boom/ │ │ │ └── Config.json │ │ ├── Decoration/ │ │ │ └── Config.json │ │ ├── Love/ │ │ │ └── Config.json │ │ ├── Party/ │ │ │ └── Config.json │ │ └── Text/ │ │ └── Config.json │ ├── bin/ │ │ ├── AndroidManifest.xml │ │ ├── FotorSDKDemo.apk │ │ ├── R.txt │ │ ├── classes.dex │ │ ├── dexedLibs/ │ │ │ ├── android-support-v4-15c67f7264087cb18a22dcadd559d4aa.jar │ │ │ ├── eibitmaplibrary-9e660ee3815c1a2bd2c0bb5373818beb.jar │ │ │ ├── fotorsdk-v1.0.7-381b468e66bb469bdea84d2d6eb1ae81.jar │ │ │ ├── fotorsdklibrary-19f8c3904a7680fe41f833f5650750d7.jar │ │ │ ├── gson-2.2.4-a5f050a398a10e240f34a91a7923b58f.jar │ │ │ └── renderscript-v8-934f712584d6e234d7344d156bb53e1f.jar │ │ └── resources.ap_ │ ├── gen/ │ │ └── com/ │ │ ├── everimaging/ │ │ │ └── fotorsdk/ │ │ │ └── R.java │ │ └── example/ │ │ └── fotorsdkdemo/ │ │ ├── BuildConfig.java │ │ └── R.java │ ├── lint.xml │ ├── proguard-project.txt │ ├── project.properties │ ├── res/ │ │ ├── color/ │ │ │ ├── photo_editor_button_background_color.xml │ │ │ └── photo_editor_button_text_color.xml │ │ ├── drawable/ │ │ │ └── photo_editor_button_background.xml │ │ ├── layout/ │ │ │ └── activity_main.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-sw600dp/ │ │ │ └── dimens.xml │ │ ├── values-sw720dp-land/ │ │ │ └── dimens.xml │ │ ├── values-v11/ │ │ │ └── styles.xml │ │ └── values-v14/ │ │ └── styles.xml │ └── src/ │ └── com/ │ └── example/ │ └── fotorsdkdemo/ │ └── MainActivity.java ├── LICENSE └── README.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitmodules ================================================ [submodule "library"] path = library url = https://github.com/Fotor/FotorSDK-android.git ================================================ FILE: FotorSDKDemo/.classpath ================================================ ================================================ FILE: FotorSDKDemo/.project ================================================ FotorSDKDemo com.android.ide.eclipse.adt.ResourceManagerBuilder com.android.ide.eclipse.adt.PreCompilerBuilder org.eclipse.jdt.core.javabuilder com.android.ide.eclipse.adt.ApkBuilder com.android.ide.eclipse.adt.AndroidNature org.eclipse.jdt.core.javanature ================================================ FILE: FotorSDKDemo/.settings/org.eclipse.jdt.core.prefs ================================================ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 org.eclipse.jdt.core.compiler.compliance=1.6 org.eclipse.jdt.core.compiler.source=1.6 ================================================ FILE: FotorSDKDemo/.svn/entries ================================================ 12 ================================================ FILE: FotorSDKDemo/.svn/format ================================================ 12 ================================================ FILE: FotorSDKDemo/.svn/pristine/07/070b79fa25398f4fa224b4626dd75e6c67df2c2e.svn-base ================================================ SRC level GetScale 0.1 0.1 0.3 level TMP quadric 0.0 1.0 tableTexture texturing (0, 14)(63, 66)(129, 151)(208, 255) (0, 38)(63, 72)(127, 127)(196, 255) (0, 49)(63, 75)(127, 121)(202, 233)(255, 255) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/0c/0c4712419da14d194f0812257ba40bd32de21e40.svn-base ================================================ ["118.xml","16.xml","8.xml","9.xml","104.xml","17.xml"] ================================================ FILE: FotorSDKDemo/.svn/pristine/0d/0d332441cbc270af2413544d854c84ccd4f39121.svn-base ================================================ SRC level GetScale 0.01 0.2 0.0 level DST quadric 0.0 1.0 ================================================ FILE: FotorSDKDemo/.svn/pristine/0f/0fa23e0c9fe055fc7671e5d3a43a97ed7d2673e4.svn-base ================================================ #E5414850 #B3C2D6 #00C0FF #EEB3C2D6 #E5414850 #991C1F27 #CC414850 ================================================ FILE: FotorSDKDemo/.svn/pristine/10/108fa6b5bc6a26dee57333789683c3fd03e43f72.svn-base ================================================ ["11.xml","74.xml","76.xml","75.xml","73.xml","80.xml","78.xml","27.xml"] ================================================ FILE: FotorSDKDemo/.svn/pristine/12/12244ee01c7eff76c02a29c1743c3f3fdad680f2.svn-base ================================================ [["stickers_decoration_1.png", "stickers_decoration_1_icon.png"], ["stickers_decoration_2.png", "stickers_decoration_2_icon.png"], ["stickers_decoration_3.png", "stickers_decoration_3_icon.png"], ["stickers_decoration_4.png", "stickers_decoration_4_icon.png"], ["stickers_decoration_5.png", "stickers_decoration_5_icon.png"], ["stickers_decoration_6.png", "stickers_decoration_6_icon.png"], ["stickers_decoration_7.png", "stickers_decoration_7_icon.png"], ["stickers_decoration_8.png", "stickers_decoration_8_icon.png"], ["stickers_decoration_9.png", "stickers_decoration_9_icon.png"], ["stickers_decoration_10.png", "stickers_decoration_10_icon.png"], ["stickers_decoration_11.png", "stickers_decoration_11_icon.png"], ["stickers_decoration_12.png", "stickers_decoration_12_icon.png"], ["stickers_decoration_13.png", "stickers_decoration_13_icon.png"], ["stickers_decoration_14.png", "stickers_decoration_14_icon.png"], ["stickers_decoration_15.png", "stickers_decoration_15_icon.png"], ["stickers_decoration_16.png", "stickers_decoration_16_icon.png"]] ================================================ FILE: FotorSDKDemo/.svn/pristine/12/12a1458fb42c49366faaed8171ddae503fb5ab15.svn-base ================================================ vtg.png tableTexture1 texturing (22, 0)(120, 78)(208, 138)(255, 170) (77, 0)(143, 69)(255, 176) (45, 0)(159, 97)(255, 173) tableTexture2 texturing (7, 171)(92, 201)(255, 253) (0, 3)(61, 79)(110, 142)(186, 201)(255, 255) (0, 23)(53, 87)(103, 140)(186, 208)(239, 248) SRC tableTexture1 dst_a SRC tableTexture2 dst_b dst_a dst_b specialAlphaTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/16/1616494bc0c12ac0a9ec007b1a0a586526b97064.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/16/165822de404fab27a653765a13ce0e1bd68ea6d2.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorSDKVersion; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; /** * Sample main activity * * @description * * @author John.Zhang * @version 1.0 * @create Apr 12, 2014 3:06:39 PM * @update Apr 12, 2014 3:06:39 PM */ public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; /** Edit sample button */ Button mEditButton; /** Call gallery button */ Button mGalleryButton; /** Display image view */ ImageView mImage; /** The path for output file */ Uri mOutputFilePath; /** Image uri for image editor */ Uri mImageUri; /** Display version label for DEBUG */ private TextView mSDKVersionLabel; /** The sample image uri. */ private Uri mSampleUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // if (mImageUri != null) { // startFeature(mImageUri); // } if (mSampleUri != null) { startFeature(mSampleUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mGalleryFolder = createFolders(); // add sample image mSampleUri = Uri.parse("file:///android_asset/sample.jpg"); loadAsync(mSampleUri); if (BuildConfig.DEBUG) { mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION); } } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = data.getData(); Bitmap bitmap = BitmapDecodeUtils.decode(this, uri, 0, 0); setImageURI(uri, bitmap); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); startFeature(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Uri sessionUri = SessionColumns.getContentUri(this, mSessionId); Cursor cursor = getContentResolver().query(sessionUri, null, null, null, null); Session session = Session.create(cursor); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session); fotorHDFilter.loadImage(); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("External Storage is not avilable").show(); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = Uri.fromFile(file); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); // newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, // mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // // === FEATURE LIST === // newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { // FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), // FotorFeaturesFactory.FeatureType.BORDER.name() }); // Whether hide confirm dialog when user not saved the was changed // bitmap // This default value will show // newIntent.putExtra(FotorConstants.EXTRA_HIDE_DISCARD_ALERT, false); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) displayMetrics.widthPixels; int maxH = (int) displayMetrics.heightPixels; Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/16/16f1cbcb8a37822a0795b2dafdfc6c1ad5d798b1.svn-base ================================================ 29M_0.png 29M_10.png 29M_2.png 29M_3.png 29M_4.png 29M_5.png 29M_6.png 29M_7.png 29M.png M 0.12 186 186 0 0 88 88 88 0 10 88 98 0 88 88 98 88 88 10 98 98 88 88 88 98 10 88 0 98 88 88 0 88 88 10 ================================================ FILE: FotorSDKDemo/.svn/pristine/17/173b4efba62c8e1113726445e7ca5aab8fbe51fb.svn-base ================================================ FotorSDKDemo com.android.ide.eclipse.adt.ResourceManagerBuilder com.android.ide.eclipse.adt.PreCompilerBuilder org.eclipse.jdt.core.javabuilder com.android.ide.eclipse.adt.ApkBuilder com.android.ide.eclipse.adt.AndroidNature org.eclipse.jdt.core.javanature ================================================ FILE: FotorSDKDemo/.svn/pristine/17/179b81766b82ed39dc92cafa39d3140d117e9637.svn-base ================================================ tableTexture texturing (5, 8)(36, 51)(115, 145)(201, 220)(255, 255) (6, 9)(67, 83)(169, 190)(255, 255) (3, 3)(55, 60)(177, 190)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/18/1869f22f6b2ae8d22c81f06af763a8f1c48f39bf.svn-base ================================================ SRC DST GetScale 0.01 0.01 0.0 ================================================ FILE: FotorSDKDemo/.svn/pristine/1b/1bf19c2085868b9447cdf0163855885cc7994c89.svn-base ================================================ SRC TMP quadric 0.0 0.9 tableTexture texturing (0, 0)(89, 44)(179, 189)(222, 255) (0, 0)(64, 64)(185, 212)(255, 255) (0, 23)(255, 217) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/26/2669873f891113a8f45506e825d0215306e95405.svn-base ================================================ # To enable ProGuard in your project, edit project.properties # to define the proguard.config property as described in that file. # # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in ${sdk.dir}/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the ProGuard # include property in project.properties. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} ================================================ FILE: FotorSDKDemo/.svn/pristine/27/2709b25879bca9f06f1ad9a29b0dc3d38267c407.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/27/275269bd2e1ccac503cb43fc0c7f8efe6ae6f57a.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/27/27e5804d4d2cb888b89e5cfabb6824fcb97950e0.svn-base ================================================ SRC level GetScale 0.01 0.01 1.3 level TMP quadric 0.0 0.8 tableTexture texturing (20, 0)(150, 109)(255, 255) (30, 0)(97, 92)(163, 172)(255, 255) (0, 0)(240, 255) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/28/28cc16730e4f03f97e077efa04843148f7f0eb0b.svn-base ================================================ tableTexture texturing (3, 0)(23, 29)(83, 116)(167, 206)(255, 255) (5, 0)(56, 64)(160, 189)(255, 255) (3, 0)(48, 49)(142, 167)(248, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/2b/2b9183863aa41af4a9ee6872efbec38dbe4ee4c0.svn-base ================================================ 128dp ================================================ FILE: FotorSDKDemo/.svn/pristine/2f/2fc798884e09b229a782e7521f0514af17907663.svn-base ================================================ # This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system edit # "ant.properties", and override values to adapt the script to your # project structure. # # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android-19 android.library.reference.1=../FotorSDK #------ RenderScript Configuration ------- renderscript.target=19 renderscript.support.mode=true sdk.buildtools=19.0.3 #------ RenderScript Configuration ------- ================================================ FILE: FotorSDKDemo/.svn/pristine/32/3228fb7bd14e329a33acb71d67f2161e4d641b3a.svn-base ================================================ SRC level GetScale 0.01 0.01 1.3 level TMP quadric 0.0 0.8 tableTexture texturing (33, 10)(255, 255) (0, 15)(86, 94)(171, 194)(255, 255) (0, 20)(255, 235) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/3b/3b76a63e440aecbb07f6d8cf6779ce7f11f02331.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorFeaturesFactory; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorSDKVersion; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; /** * Sample main activity * * @description * * @author John.Zhang * @version 1.0 * @create Apr 12, 2014 3:06:39 PM * @update Apr 12, 2014 3:06:39 PM */ public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; /** Edit sample button */ Button mEditButton; /** Call gallery button */ Button mGalleryButton; /** Display image view */ ImageView mImage; /** The path for output file */ String mOutputFilePath; /** Image uri for image editor */ Uri mImageUri; /** Display version label for DEBUG */ private TextView mSDKVersionLabel; /** The sample image uri. */ private Uri mSampleUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mImageUri != null) { startFeature(mImageUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mGalleryFolder = createFolders(); // add sample image mSampleUri = Uri.parse("file:///android_asset/sample.jpg"); loadAsync(mSampleUri); if (BuildConfig.DEBUG) { mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION); } } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = Uri.parse(mOutputFilePath); Bitmap bitmap = BitmapDecodeUtils.decodeFile(mOutputFilePath); setImageURI(uri, bitmap); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); startFeature(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Uri sessionUri = SessionColumns.getContentUri(this, mSessionId); Cursor cursor = getContentResolver().query(sessionUri, null, null, null, null); Session session = Session.create(cursor); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session); fotorHDFilter.loadImage(); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ @SuppressWarnings("deprecation") private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { showDialog(EXTERNAL_STORAGE_UNAVAILABLE); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = file.getAbsolutePath(); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // // === FEATURE LIST === // newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { // FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), // FotorFeaturesFactory.FeatureType.BORDER.name() }); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) (displayMetrics.widthPixels / 1.5); int maxH = (int) (displayMetrics.heightPixels / 1.5); Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/3b/3bb5415d1f04c900bd4f8c1e4e7073d6d969d8a5.svn-base ================================================ 42M_0.png 42M_1.png 42M_2.png 42M_3.png 42M_4.png 42M_5.png 42M_6.png 42M_7.png 42M.png M 0.1 362 362 0 0 166 166 166 0 30 166 196 0 166 166 196 166 166 30 196 196 166 166 166 196 30 166 0 196 166 166 0 166 166 30 ================================================ FILE: FotorSDKDemo/.svn/pristine/3c/3c755b5500ed67e7a115f31d4682bbdbedbb9973.svn-base ================================================ 10M_0.png 10M_1.png 10M_2.png 10M_3.png 10M_4.png 10M_5.png 10M_6.png 10M_7.png 10M.png M 0.08 174 174 0 0 72 72 72 0 30 72 102 0 72 72 102 72 72 30 102 102 72 72 72 102 30 72 0 102 72 72 0 72 72 30 ================================================ FILE: FotorSDKDemo/.svn/pristine/3e/3e3d52eea62bb45233f43a2939d14cd6a04db981.svn-base ================================================ tableTexture texturing 0, 4 255, 244 0, 0 255, 255 0, 84 255, 194 SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/3e/3e57edbe2aee66098186d9259aaf0d9847723cdf.svn-base ================================================ 49S.png S ================================================ FILE: FotorSDKDemo/.svn/pristine/42/42d8c3015ce203c165397e1607e6f5d1d90ee430.svn-base ================================================ ["108.xml","109.xml","110.xml","91.xml","93.xml","6.xml"] ================================================ FILE: FotorSDKDemo/.svn/pristine/47/47444bc050df100e3ecf6da3b32fc3e72cedd3d7.svn-base ================================================ SRC level GetScale 0.01 0.2 0.0 level TMP linear 0.0 0.8 TMP DST 0.393, 0.769, 0.189 0.349, 0.686, 0.168 0.272, 0.534, 0.131 ================================================ FILE: FotorSDKDemo/.svn/pristine/4c/4c0d320756d2018b3f2c3544923a939b87533800.svn-base ================================================ { "version": 1, "category_name": "Classic", "fonts_array": [{ "font_id": 1, "font_name": "Droid Sans", "font_normal": "DroidSans", "font_bold": "DroidSans-Bold", "font_italic": "", "font_bolditalic": "" }, { "font_id": 2, "font_name": "Droid Serif", "font_normal": "DroidSerif", "font_bold": "DroidSerif-Bold", "font_italic": "DroidSerif-Italic", "font_bolditalic": "DroidSerif-BoldItalic" }, { "font_id": 3, "font_name": "Droid Sans Mono", "font_normal": "DroidSansMono", "font_bold": "", "font_italic": "", "font_bolditalic": "" }, { "font_id": 4, "font_name": "Roboto Regular", "font_normal": "Roboto-Regular", "font_bold": "Roboto-Bold", "font_italic": "Roboto-Italic", "font_bolditalic": "Roboto-BoldItalic" }, { "font_id": 5, "font_name": "Roboto Thin", "font_normal": "Roboto-Thin", "font_bold": "", "font_italic": "Roboto-ThinItalic", "font_bolditalic": "" }, { "font_id": 6, "font_name": "Roboto Condensed", "font_normal": "RobotoCondensed-Regular", "font_bold": "RobotoCondensed-Bold", "font_italic": "RobotoCondensed-Italic", "font_bolditalic": "RobotoCondensed-BoldItalic" } ] } ================================================ FILE: FotorSDKDemo/.svn/pristine/4c/4c32cb13f7e191b3241c44246970ac9d7e713b92.svn-base ================================================ 16dp 16dp 44dip 20sp 60dip 16sp ================================================ FILE: FotorSDKDemo/.svn/pristine/4d/4d34f6dcb70ac598c17e6a49c25a45c02ce62a69.svn-base ================================================ FotorSDKDemo Settings Hello world! ================================================ FILE: FotorSDKDemo/.svn/pristine/4f/4f80723c94375d498af0db25808f75960a2c2473.svn-base ================================================ 41M_0.png 41M_1.png 41M_2.png 41M_3.png 41M_4.png 41M_5.png 41M_6.png 41M_7.png 41M.png M 0.05 170 170 0 0 70 70 70 0 30 70 100 0 70 70 100 70 70 30 100 100 70 70 70 100 30 70 0 100 70 70 0 70 70 30 ================================================ FILE: FotorSDKDemo/.svn/pristine/50/503d1f813c4b3f792fefcfe3693e3482ea2dfd77.svn-base ================================================ tableTexture texturing (0, 4)(39, 103)(134, 223)(242, 255) (0, 3)(31, 85)(68, 155)(131, 255)(219, 255) (0, 3)(42, 110)(114, 207)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/51/51bbccc63169d80f42b31b3562188756e7faf856.svn-base ================================================ tableTexture texturing (9, 0)(49, 62)(124, 155)(218, 255) (10, 0)(30, 33)(137, 169)(223, 255) (10, 0)(37, 45)(96, 122)(150, 182)(221, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/59/593c2912e1d6e6037ba4ece31b487feb1df3f601.svn-base ================================================ FotorSDKDemo Settings Hello world! Photo Editor Select an image Edit sample image ================================================ FILE: FotorSDKDemo/.svn/pristine/60/60179bf9db929e9c2394ab9becc01b3dd3e9bed7.svn-base ================================================ tableTexture texturing (48, 56)(82, 129)(130, 206)(214, 255) (7, 37)(64, 111)(140, 190)(232, 220) (2, 97)(114, 153)(229, 172) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/60/601d0f18449ea3e367c25c0633849c1a5cf4a39c.svn-base ================================================ tableTexture texturing (33, 0)(70, 32)(146, 143)(185, 204)(255, 255) (22, 0)(103, 71)(189, 219)(255, 252) (10, 0)(54, 29)(93, 66)(205, 220)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/61/612b00017064ed21957aa415e9840fb677afae93.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/62/62791a9f1067cdb03c5d1028ae0891b663242ef6.svn-base ================================================ SRC TMP GetScale 0.01 0.15 0.0 TMP DST quadric 0.0 0.8 ================================================ FILE: FotorSDKDemo/.svn/pristine/63/6367919ce43bfe92d5479523fec0a5680822c1ca.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorSDKVersion; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; /** * Sample main activity * * @description * * @author John.Zhang * @version 1.0 * @create Apr 12, 2014 3:06:39 PM * @update Apr 12, 2014 3:06:39 PM */ public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; /** Edit sample button */ Button mEditButton; /** Call gallery button */ Button mGalleryButton; /** Display image view */ ImageView mImage; /** The path for output file */ Uri mOutputFilePath; /** Image uri for image editor */ Uri mImageUri; /** Display version label for DEBUG */ private TextView mSDKVersionLabel; /** The sample image uri. */ private Uri mSampleUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // if (mImageUri != null) { // startFeature(mImageUri); // } if (mSampleUri != null) { startFeature(mSampleUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mGalleryFolder = createFolders(); // add sample image mSampleUri = Uri.parse("file:///android_asset/sample.jpg"); loadAsync(mSampleUri); if (BuildConfig.DEBUG) { mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION); } } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = data.getData(); Bitmap bitmap = BitmapDecodeUtils.decode(this, uri, 0, 0); setImageURI(uri, bitmap); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); startFeature(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Uri sessionUri = SessionColumns.getContentUri(this, mSessionId); Cursor cursor = getContentResolver().query(sessionUri, null, null, null, null); Session session = Session.create(cursor); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session); fotorHDFilter.loadImage(); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("External Storage is not avilable").show(); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = Uri.fromFile(file); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); // newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, // mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // // === FEATURE LIST === // newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { // FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), // FotorFeaturesFactory.FeatureType.BORDER.name() }); // Whether hide confirm dialog when user not saved the was changed // bitmap // This default value will show // newIntent.putExtra(FotorConstants.EXTRA_HIDE_DISCARD_ALERT, false); // Whether input image no changes,were made to the image. // newIntent.putExtra(FotorConstants.EXTRA_SAVE_ON_NO_CHANGES, true); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) displayMetrics.widthPixels; int maxH = (int) displayMetrics.heightPixels; Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/66/6697aafe3ac76941b99f9c07c26a770eb1b266df.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/68/68431f32b8d9d7f351e3590a2e8101e9b8d4c84f.svn-base ================================================ tableTexture texturing (4, 4)(38, 38)(146, 146)(201, 202)(255, 255) (0, 0)(80, 74)(192, 187)(255, 255) (0, 0)(58, 58)(183, 184)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/68/68bcd275b049a2bb1d5cd85ca80e93beee19f2f1.svn-base ================================================ vtg.png tableTexture1 texturing (16, 25)(59, 77)(101, 143)(173, 211)(255, 237) (24, 7)(85, 73)(124, 149)(185, 207)(249, 229) (30, 7)(105, 78)(150, 148)(200, 193)(255, 204) tableTexture2 texturing (16, 40)(52, 111)(124, 194)(172, 224)(231, 252) (19, 5)(71, 84)(110, 145)(167, 212)(222, 250) (21, 4)(67, 50)(143, 167)(237, 228) SRC tableTexture1 dst_a SRC tableTexture2 dst_b dst_a dst_b specialAlphaTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/70/7068771eeeda8df42bcb7520bc3f53472f83f0bb.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns.Action; import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import java.util.ArrayList; import java.util.List; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.view.View.OnLongClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; Button mEditButton; Button mGalleryButton; ImageView mImage; String mOutputFilePath; Uri mImageUri; private Uri mSampleUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mImageUri != null) { startFeature(mImageUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mGalleryFolder = createFolders(); // add sample image mSampleUri = Uri.parse("file:///android_asset/sample.jpg"); loadAsync(mSampleUri); } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = Uri.parse(mOutputFilePath); Bitmap bitmap = BitmapDecodeUtils.decodeFile(mOutputFilePath); setImageURI(uri, bitmap); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); startFeature(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Cursor cursor = getContentResolver().query( ActionsColumns.getContentUri(this, mSessionId), null, null, null, null); if (cursor != null && cursor.getCount() > 0) { List actions = new ArrayList(); while (cursor.moveToNext()) { Action action = Action.create(cursor); System.out.println("action:" + action); actions.add(action); } cursor.close(); } else { System.out.println("cursor doesn't have datas."); } Cursor cursor2 = getContentResolver().query( SessionColumns.getContentUri(this, mSessionId), null, null, null, null); Session session = Session.create(cursor2); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, mSessionId); fotorHDFilter.loadImage(session.file_name); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ @SuppressWarnings("deprecation") private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { showDialog(EXTERNAL_STORAGE_UNAVAILABLE); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = file.getAbsolutePath(); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // === FEATURE LIST === // newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { // FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), // FotorFeaturesFactory.FeatureType.BORDER.name() }); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) (displayMetrics.widthPixels / 1.5); int maxH = (int) (displayMetrics.heightPixels / 1.5); Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/73/73aeadd07a4bf19a75548d38c69e16ad772cc336.svn-base ================================================ tableTexture texturing (0, 0)(69, 63)(105, 138)(151, 222)(255, 255) (0, 0)(67, 51)(135, 191)(255, 255) (0, 0)(86, 76)(150, 212)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/73/73b168548249c4b9413f7457a66ba5b03df649bd.svn-base ================================================ SRC level GetScale 0.01 0.01 1.3 level TMP quadric 0.0 1.0 tableTexture texturing (0, 31)(106, 121)(255, 196) (0, 11)(64, 95)(132, 140)(255, 229) (0, 0)(157, 156)(255, 210) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/73/73d74fd28b870be544e505b67990814bf8cfeeeb.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorSDKVersion; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; /** * Sample main activity * * @description * * @author John.Zhang * @version 1.0 * @create Apr 12, 2014 3:06:39 PM * @update Apr 12, 2014 3:06:39 PM */ public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; /** Edit sample button */ Button mEditButton; /** Call gallery button */ Button mGalleryButton; /** Display image view */ ImageView mImage; /** The path for output file */ Uri mOutputFilePath; /** Image uri for image editor */ Uri mImageUri; /** Display version label for DEBUG */ private TextView mSDKVersionLabel; /** The sample image uri. */ private Uri mSampleUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // if (mImageUri != null) { // startFeature(mImageUri); // } if (mSampleUri != null) { startFeature(mSampleUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mGalleryFolder = createFolders(); // add sample image mSampleUri = Uri.parse("file:///android_asset/sample.jpg"); loadAsync(mSampleUri); if (BuildConfig.DEBUG) { mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION); } } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = data.getData(); Bitmap bitmap = BitmapDecodeUtils.decode(this, uri, 0, 0); setImageURI(uri, bitmap); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); startFeature(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Uri sessionUri = SessionColumns.getContentUri(this, mSessionId); Cursor cursor = getContentResolver().query(sessionUri, null, null, null, null); Session session = Session.create(cursor); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session); fotorHDFilter.loadImage(); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("External Storage is not avilable").show(); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = Uri.fromFile(file); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); // newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // // === FEATURE LIST === // newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { // FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), // FotorFeaturesFactory.FeatureType.BORDER.name() }); // Whether hide confirm dialog when user not saved the was changed bitmap // This default value will show // newIntent.putExtra(FotorConstants.EXTRA_HIDE_DISCARD_ALERT, false); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) (displayMetrics.widthPixels / 1.5); int maxH = (int) (displayMetrics.heightPixels / 1.5); Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/75/7531f57ac71678e8bdde440906a3023f46284b44.svn-base ================================================ { "borderItems":[ {"filename":"118S.xml","thumbThickness":0.14}, {"filename":"42M.xml","thumbThickness":0.19}, {"filename":"10M.xml","thumbThickness":0.139}, {"filename":"3M.xml","thumbThickness":0.105}, {"filename":"41M.xml","thumbThickness":0.11}] ,"packName":"Gallery"} ================================================ FILE: FotorSDKDemo/.svn/pristine/76/768764aaceba888bd473a3474c94fb987e6b6ab0.svn-base ================================================ vtg.png tableTexture1 texturing (71, 0)(112, 62)(157, 148)(255, 232) (83, 0)(138, 113)(172, 173)(255, 223) (16, 0)(255, 194) tableTexture2 texturing (43, 0)(109, 88)(147, 167)(215, 255) (48, 1)(125, 117)(173, 211)(239, 255) (0, 25)(100, 105)(189, 176)(255, 228) SRC tableTexture1 dst_a SRC tableTexture2 dst_b dst_a dst_b specialAlphaTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/79/79ecb6f98bbfd04362cf6c5dbeb1fb60283349f7.svn-base ================================================ SRC TMP GetScale 0.01 0.01 0.0 TMP DST quadric 0.0 1.0 ================================================ FILE: FotorSDKDemo/.svn/pristine/7b/7bc56bf8abce95597491da4f75b6e04101d1c1d8.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/7b/7bd52fef0b72d500aef22545fc4ae5c742d9180e.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/7b/7bf0670c68c92c203241c3e75f43bc714560f069.svn-base ================================================ 2M_0.png 2M_1.png 2M_2.png 2M_3.png 2M_4.png 2M_5.png 2M_6.png 2M_7.png 2M.png M 0.05 133 133 0 0 66 66 66 0 1 66 67 0 66 66 67 66 66 1 67 67 66 66 66 67 1 66 0 67 66 66 0 66 66 1 ================================================ FILE: FotorSDKDemo/.svn/pristine/7c/7c97e2760e11fafed4bfa319faf395e0fc044b96.svn-base ================================================ [["stickers_party_1.png", "stickers_party_1_icon.png"], ["stickers_party_2.png", "stickers_party_2_icon.png"], ["stickers_party_3.png", "stickers_party_3_icon.png"], ["stickers_party_4.png", "stickers_party_4_icon.png"], ["stickers_party_5.png", "stickers_party_5_icon.png"], ["stickers_party_6.png", "stickers_party_6_icon.png"], ["stickers_party_7.png", "stickers_party_7_icon.png"], ["stickers_party_8.png", "stickers_party_8_icon.png"], ["stickers_party_9.png", "stickers_party_9_icon.png"], ["stickers_party_10.png", "stickers_party_10_icon.png"], ["stickers_party_11.png", "stickers_party_11_icon.png"], ["stickers_party_12.png", "stickers_party_12_icon.png"], ["stickers_party_13.png", "stickers_party_13_icon.png"], ["stickers_party_14.png", "stickers_party_14_icon.png"], ["stickers_party_15.png", "stickers_party_15_icon.png"], ["stickers_party_16.png", "stickers_party_16_icon.png"]] ================================================ FILE: FotorSDKDemo/.svn/pristine/7e/7eac42e387e1a7ab2099e86c2917dc0c4902258d.svn-base ================================================ [["stickers_boom_1.png", "stickers_boom_1_icon.png"], ["stickers_boom_2.png", "stickers_boom_2_icon.png"], ["stickers_boom_3.png", "stickers_boom_3_icon.png"], ["stickers_boom_4.png", "stickers_boom_4_icon.png"], ["stickers_boom_5.png", "stickers_boom_5_icon.png"], ["stickers_boom_6.png", "stickers_boom_6_icon.png"], ["stickers_boom_7.png", "stickers_boom_7_icon.png"], ["stickers_boom_8.png", "stickers_boom_8_icon.png"], ["stickers_boom_9.png", "stickers_boom_9_icon.png"], ["stickers_boom_10.png", "stickers_boom_10_icon.png"], ["stickers_boom_11.png", "stickers_boom_11_icon.png"], ["stickers_boom_12.png", "stickers_boom_12_icon.png"], ["stickers_boom_13.png", "stickers_boom_13_icon.png"], ["stickers_boom_14.png", "stickers_boom_14_icon.png"], ["stickers_boom_15.png", "stickers_boom_15_icon.png"], ["stickers_boom_16.png", "stickers_boom_16_icon.png"]] ================================================ FILE: FotorSDKDemo/.svn/pristine/7f/7fc76dd4b7d2df42241b9e3b32fd541eb1a71229.svn-base ================================================ 16dp 16dp ================================================ FILE: FotorSDKDemo/.svn/pristine/82/8236e7e4c47bc975b8c27269dd01ae5f5cb62623.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/88/88086200176fa4174716c1498413d31868152bbf.svn-base ================================================ ["1.xml","4.xml","23.xml","5.xml","102.xml","103.xml","2.xml","7.xml","10.xml"] ================================================ FILE: FotorSDKDemo/.svn/pristine/8a/8a10f97888d40f0e95f38492c4a52b78328605f3.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/8a/8a55f6711de24bf36b97d208f5637250973bfb3a.svn-base ================================================ 30S.png S ================================================ FILE: FotorSDKDemo/.svn/pristine/8c/8cb1a48fc88581b7e2e5855e1238c7da80cd3938.svn-base ================================================ 37S.png S ================================================ FILE: FotorSDKDemo/.svn/pristine/91/918df1128aa29e930b499ddb9717293a7c7edd6d.svn-base ================================================ 23M_0.png 23M_1.png 23M_2.png 23M_3.png 23M_4.png 23M_5.png 23M_6.png 23M_7.png 23M.png M 0.1 264 264 0 0 112 112 112 0 40 112 152 0 112 112 152 112 112 40 152 152 112 112 112 152 40 112 0 152 112 112 0 112 112 40 ================================================ FILE: FotorSDKDemo/.svn/pristine/93/9378ea4758918618f3ca68b1b623f88a4bc9eead.svn-base ================================================ tableTexture texturing (0, 4)(255, 244) (0, 0)(255, 255) (0, 84)(255, 194) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/95/95a4eb3af29a3beeabbde817bc588a78ddf10e0d.svn-base ================================================ SRC level GetScale 0.01 0.01 1.0 level saturation -0.7 -0.7 -0.7 0.5 0.5 -0.7 SRC TMP 0.24314 0.07059 0.59215 saturation TMP DST overlay 0.25 ================================================ FILE: FotorSDKDemo/.svn/pristine/95/95abf644e02a344ce785c4da92c0dd5c26415b7a.svn-base ================================================ { "borderItems":[ {"filename":"23M.xml","thumbThickness":0.27}, {"filename":"29M.xml","thumbThickness":0.23}, {"filename":"2M.xml","thumbThickness":0.1}, {"filename":"36M.xml","thumbThickness":0.8}, {"filename":"38M.xml","thumbThickness":0.8}] ,"packName":"Simple"} ================================================ FILE: FotorSDKDemo/.svn/pristine/97/975756f4219c90758891f1964f8028cecfb2c675.svn-base ================================================ 36M_0.png 36M_1.png 36M_2.png 36M_3.png 36M_4.png 36M_5.png 36M_6.png 36M_7.png 36M.png M 0.6 728 728 0 0 360 360 360 0 8 360 368 0 360 360 368 360 360 8 368 368 360 360 360 368 8 360 0 368 360 360 0 360 360 8 ================================================ FILE: FotorSDKDemo/.svn/pristine/99/9955f7f1e3c0db05fb428b4fd3e16eacc7402ae9.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/99/9969bc387bfdd8297a5fa77945b20785b603fd97.svn-base ================================================ { "borderItems":[ {"filename":"30S.xml","thumbThickness":0.05}, {"filename":"37S.xml","thumbThickness":0.05}, {"filename":"43S.xml","thumbThickness":0.05}, {"filename":"49S.xml","thumbThickness":0.05}, {"filename":"51S.xml","thumbThickness":0.05}] ,"packName":"Styled"} ================================================ FILE: FotorSDKDemo/.svn/pristine/9a/9a475952207ff615974d1a3613e391d02b0f0dea.svn-base ================================================ SRC dst -0.5 -0.5 -0.5 -0.5 -0.5 -0.5 tableTexture texturing (0, 0)(129, 148)(255, 255) (0, 0)(92, 77)(175, 189)(255, 255) (0, 0)(163, 144)(255, 255) dst DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/9a/9ada2c0e806321f9bb3c7a6ce49707c4fdf664e1.svn-base ================================================ vtg.png SRC tmp -0.45 -0.45 -0.45 -0.45 -0.45 -0.45 tableTexture1 texturing (63, 35)(148, 116)(255, 208) (71, 0)(149, 84)(255, 187) (85, 22)(177, 87)(255, 148) tableTexture2 texturing (5, 42)(78, 129)(117, 178)(182, 219)(252, 253) (0, 0)(63, 84)(117, 157)(173, 204)(255, 241) (8, 26)(130, 147)(190, 197)(255, 217) tmp dst_a tableTexture1 tmp dst_b tableTexture2 dst_a dst_b specialAlphaTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/9d/9da5972490b164e1b1bbaede6cbd9a8dac321e16.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/9e/9efa9da8094116c00abbe5caf55d4f981d21cf26.svn-base ================================================ SRC level GetScale 0.01 0.01 1.0 level saturation 0.1 -0.7 -0.7 -0.7 -0.7 0.1 level hue hue 0.829 saturation hue DST normal 0.31 ================================================ FILE: FotorSDKDemo/.svn/pristine/9f/9f6bfa62aa76b00c6effa5bdd5ddc809c7eb25d2.svn-base ================================================ 43S.png S ================================================ FILE: FotorSDKDemo/.svn/pristine/9f/9ff96ba0dbe9a1dc3994a9ac334ae84253988a32.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns.Action; import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.FotorResUtils; import com.everimaging.fotorsdk.utils.Utils; import java.io.IOException; import java.util.ArrayList; import java.util.List; import com.everimaging.fotorsdk.camera.CameraActivity; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.BitmapFactory.Options; import android.graphics.Matrix; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.ExifInterface; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.view.View.OnLongClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; Button mEditButton; Button mCameraButton; Button mGalleryButton; ImageView mImage; View mImageContainer; String mOutputFilePath; Uri mImageUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mImageUri != null) { startFeature(mImageUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mCameraButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub String saveDir = "FotorSDK"; Intent intent = new Intent(MainActivity.this, CameraActivity.class); intent.putExtra(CameraActivity.FOTOR_KEY_SAVEDIR, saveDir); startActivityForResult(intent, CameraActivity.FOTOR_ACTION_REQUEST_CAMERA); } }); mImageContainer.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Uri uri = pickRandomImage(); if (uri != null) { Log.d(LOG_TAG, "image uri: " + uri); loadAsync(uri); } } }); mImageContainer.setLongClickable(true); mImageContainer.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { if (mImageUri != null) { Log.d(LOG_TAG, "onLongClick: " + v); openContextMenu(v); return true; } return false; } }); mGalleryFolder = createFolders(); mImageContainer.performClick(); } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(FotorResUtils .getId(this, "button2")); mGalleryButton = (Button) findViewById(R.id.button_gallery); mCameraButton = (Button) findViewById(FotorResUtils.getId(this, "button_camera")); mImage = (ImageView) findViewById(FotorResUtils.getId(this, "image")); mImageContainer = findViewById(FotorResUtils.getId(this, "image_container")); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = Uri.parse(mOutputFilePath); loadAsync(uri); new ProcessHDTask(this).execute(); } break; case CameraActivity.FOTOR_ACTION_REQUEST_CAMERA: String resultPath = data .getStringExtra(CameraActivity.FOTOR_KEY_CAPTURE_RESULTPATH); if (resultPath != null) { Uri uri = Uri.parse(resultPath); loadAsync(uri); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Cursor cursor = getContentResolver().query( ActionsColumns.getContentUri(this, mSessionId), null, null, null, null); if (cursor != null && cursor.getCount() > 0) { List actions = new ArrayList(); while (cursor.moveToNext()) { Action action = Action.create(cursor); System.out.println("action:" + action); actions.add(action); } cursor.close(); } else { System.out.println("cursor doesn't have datas."); } Cursor cursor2 = getContentResolver().query( SessionColumns.getContentUri(this, mSessionId), null, null, null, null); Session session = Session.create(cursor2); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, mSessionId); fotorHDFilter.loadImage(session.file_name); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ @SuppressWarnings("deprecation") private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { showDialog(EXTERNAL_STORAGE_UNAVAILABLE); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = file.getAbsolutePath(); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // === FEATURE LIST === // newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { // FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), // FotorFeaturesFactory.FeatureType.BORDER.name() }); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) (displayMetrics.widthPixels / 1.5); int maxH = (int) (displayMetrics.heightPixels / 1.5); Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); // bitmap = BitmapFactory.decodeFile(mUri.toString(), options); // int angel = 0; // try { // ExifInterface exif = new ExifInterface(mUri.toString()); // int orientation = exif.getAttributeInt( // ExifInterface.TAG_ORIENTATION, -1); // if (orientation != -1) { // switch (orientation) { // case ExifInterface.ORIENTATION_ROTATE_90: // angel = 90; // break; // case ExifInterface.ORIENTATION_ROTATE_180: // angel = 180; // break; // case ExifInterface.ORIENTATION_ROTATE_270: // angel = 270; // break; // default: // break; // } // } // } catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // if (angel != 0) { // Matrix matrix = new Matrix(); // matrix.setRotate(angel); // bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), // bitmap.getHeight(), matrix, true); // } return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/a0/a058978066e296310b0224baa3e95484f15c8f3d.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/a1/a1e3bda0c91a5191ca1dea31f45dcfe834accc4a.svn-base ================================================ tableTexture texturing (0, 0)(117, 95)(155, 171)(179, 225)(255, 255) (0, 0)(94, 66)(155, 176)(255, 255) (0, 0)(48, 59)(141, 130)(255, 224) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/a3/a33eeaaaff41f46520323424ca79e399e2d53af2.svn-base ================================================ SRC level GetScale 0.1 0.2 1.0 level TMP quadric 0.0 1.0 tableTexture texturing (0, 0)(127, 91)(255, 214) (0, 0)(127, 102)(255, 255) (0, 0)(127, 108)(255, 255) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/a3/a396b072ee70577a67f05e9a3e191e6b53027175.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/a5/a556148b66359e94f7ccde75022d7b2b489d8164.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/a5/a5b5ca45da347e01b26e995a77d7ef21006ad211.svn-base ================================================ tableTexture texturing (17, 0)(37, 18)(75, 52)(238, 255) (16, 0)(53, 32)(113, 92)(236, 255) (16, 0)(80, 57)(171, 164)(235, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/a9/a98cecac96dab90bff5a7d390e2b08b5297a8e48.svn-base ================================================ { "version": 1, "category_name": "Charm", "fonts_array": [{ "font_id": 1, "font_name": "Sofia", "font_normal": "Sofia", "font_bold": "", "font_italic": "", "font_bolditalic": "Sofia" }, { "font_id": 2, "font_name": "Ostrich Sans", "font_normal": "Ostrich Sans", "font_bold": "OstrichSans-Bold", "font_italic": "", "font_bolditalic": "OstrichSans-Bold" }, { "font_id": 3, "font_name": "Bearpaw", "font_normal": "Bearpaw", "font_bold": "", "font_italic": "", "font_bolditalic": "Bearpaw" }, { "font_id": 4, "font_name": "American Typewriter", "font_normal": "AmericanTypewriter", "font_bold": "AmericanTypewriter-Bold", "font_italic": "", "font_bolditalic": "AmericanTypewriter-Bold" }, { "font_id": 5, "font_name": "Stencil Std", "font_normal": "Stencil Std", "font_bold": "", "font_italic": "", "font_bolditalic": "Stencil Std" }, { "font_id": 6, "font_name": "Brush Script MT", "font_normal": "Brush Script", "font_bold": "", "font_italic": "", "font_bolditalic": "Brush Script" }, { "font_id": 7, "font_name": "Noteworthy", "font_normal": "Noteworthy", "font_bold": "Noteworthy-Bold", "font_italic": "", "font_bolditalic": "Noteworthy-Bold" }, { "font_id": 8, "font_name": "Miama", "font_normal": "Miama", "font_bold": "", "font_italic": "", "font_bolditalic": "Miama" }, { "font_id": 9, "font_name": "Blackout", "font_normal": "Blackout", "font_bold": "", "font_italic": "", "font_bolditalic": "Blackout" }, { "font_id": 10, "font_name": "Muli", "font_normal": "Muli", "font_bold": "", "font_italic": "Muli-Italic", "font_bolditalic": "Muli-Italic" }, { "font_id": 11, "font_name": "padaloma italic", "font_normal": "padaloma", "font_bold": "", "font_italic": "", "font_bolditalic": "padaloma" }, { "font_id": 12, "font_name": "Josefin Sans", "font_normal": "Josefin Sans", "font_bold": "JosefinSans-Bold", "font_italic": "JosefinSans-Italic", "font_bolditalic": "JosefinSans-BoldItalic" }, { "font_id": 13, "font_name": "Garogier", "font_normal": "Garogier", "font_bold": "", "font_italic": "", "font_bolditalic": "Garogier" } ] } ================================================ FILE: FotorSDKDemo/.svn/pristine/aa/aa1f5f1723de9aee2669dc44a26fbc0ce776d35f.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/aa/aa91bd20a01c02603ac8f4df60bef48758548c2d.svn-base ================================================ 3M_0.png 3M_1.png 3M_2.png 3M_3.png 3M_4.png 3M_5.png 3M_6.png 3M_7.png 3M.png M 0.05 161 161 0 0 80 80 80 0 1 80 81 0 80 80 81 80 80 1 81 81 80 80 80 81 1 80 0 81 80 80 0 80 80 1 ================================================ FILE: FotorSDKDemo/.svn/pristine/ad/ad9e9267bc0cf1e8dd2be128bc64261b575b012a.svn-base ================================================ [["stickers_love_1.png", "stickers_love_1_icon.png"], ["stickers_love_2.png", "stickers_love_2_icon.png"], ["stickers_love_3.png", "stickers_love_3_icon.png"], ["stickers_love_4.png", "stickers_love_4_icon.png"], ["stickers_love_5.png", "stickers_love_5_icon.png"], ["stickers_love_6.png", "stickers_love_6_icon.png"], ["stickers_love_7.png", "stickers_love_7_icon.png"], ["stickers_love_8.png", "stickers_love_8_icon.png"], ["stickers_love_9.png", "stickers_love_9_icon.png"], ["stickers_love_10.png", "stickers_love_10_icon.png"], ["stickers_love_11.png", "stickers_love_11_icon.png"], ["stickers_love_12.png", "stickers_love_12_icon.png"], ["stickers_love_13.png", "stickers_love_13_icon.png"], ["stickers_love_14.png", "stickers_love_14_icon.png"], ["stickers_love_15.png", "stickers_love_15_icon.png"], ["stickers_love_16.png", "stickers_love_16_icon.png"]] ================================================ FILE: FotorSDKDemo/.svn/pristine/af/afaa4cc1820f9992969da150808bc0b865975646.svn-base ================================================ vtg.png tableTexture1 texturing (16, 0)(138, 133)(202, 185)(255, 213) (82, 0)(128, 85)(173, 145)(255, 207) (108, 62)(176, 137)(255, 184) tableTexture2 texturing (0, 105)(61, 167)(128, 221)(190, 236)(255, 255) (3, 0)(64, 98)(130, 191)(191, 228)(255, 255) (54, 62)(86, 101)(129, 155)(191, 192)(255, 222) SRC tableTexture1 dst_a SRC tableTexture2 dst_b dst_a dst_b specialAlphaTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/af/afc1bf1787c384436565994646909db35fe7e06f.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorFeaturesFactory; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorSDKVersion; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns.Action; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import java.util.ArrayList; import java.util.List; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; Button mEditButton; Button mGalleryButton; ImageView mImage; String mOutputFilePath; Uri mImageUri; private TextView mSDKVersionLabel; private Uri mSampleUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mImageUri != null) { startFeature(mImageUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mGalleryFolder = createFolders(); // add sample image mSampleUri = Uri.parse("file:///android_asset/sample.jpg"); loadAsync(mSampleUri); if (BuildConfig.DEBUG) { mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION); } } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = Uri.parse(mOutputFilePath); Bitmap bitmap = BitmapDecodeUtils.decodeFile(mOutputFilePath); setImageURI(uri, bitmap); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); startFeature(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Uri sessionUri = SessionColumns.getContentUri(this, mSessionId); Cursor cursor = getContentResolver().query(sessionUri, null, null, null, null); Session session = Session.create(cursor); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session); fotorHDFilter.loadImage(); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ @SuppressWarnings("deprecation") private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { showDialog(EXTERNAL_STORAGE_UNAVAILABLE); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = file.getAbsolutePath(); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // // === FEATURE LIST === newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), FotorFeaturesFactory.FeatureType.BORDER.name() }); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) (displayMetrics.widthPixels / 1.5); int maxH = (int) (displayMetrics.heightPixels / 1.5); Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/b1/b129b276e01126de5b3b753572ac67cbfc19454c.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/b6/b63a097de0cd21e7c8acb72e4604812de94ee27a.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/b7/b786870b4a198837c81a932a5573ed97c1f9b330.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorSDKVersion; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; /** * Sample main activity * * @description * * @author John.Zhang * @version 1.0 * @create Apr 12, 2014 3:06:39 PM * @update Apr 12, 2014 3:06:39 PM */ public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; /** Edit sample button */ Button mEditButton; /** Call gallery button */ Button mGalleryButton; /** Display image view */ ImageView mImage; /** The path for output file */ Uri mOutputFilePath; /** Image uri for image editor */ Uri mImageUri; /** Display version label for DEBUG */ private TextView mSDKVersionLabel; /** The sample image uri. */ private Uri mSampleUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mImageUri != null) { startFeature(mImageUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mGalleryFolder = createFolders(); // add sample image mSampleUri = Uri.parse("file:///android_asset/sample.jpg"); loadAsync(mSampleUri); if (BuildConfig.DEBUG) { mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION); } } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = data.getData(); Bitmap bitmap = BitmapDecodeUtils.decode(this, uri, 0, 0); setImageURI(uri, bitmap); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); startFeature(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Uri sessionUri = SessionColumns.getContentUri(this, mSessionId); Cursor cursor = getContentResolver().query(sessionUri, null, null, null, null); Session session = Session.create(cursor); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session); fotorHDFilter.loadImage(); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("External Storage is not avilable").show(); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = Uri.fromFile(file); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); // newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // // === FEATURE LIST === // newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { // FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), // FotorFeaturesFactory.FeatureType.BORDER.name() }); // Whether hide confirm dialog when user not saved the was changed bitmap // This default value will show // newIntent.putExtra(FotorConstants.EXTRA_HIDE_DISCARD_ALERT, false); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) (displayMetrics.widthPixels / 1.5); int maxH = (int) (displayMetrics.heightPixels / 1.5); Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/b9/b9f3ebab942f1fcc978988f97adaba308bbc3856.svn-base ================================================ tableTexture texturing (33, 0)(104, 76)(167, 168)(218, 255) (30, 0)(112, 71)(174, 189)(234, 255) (8, 30)(160, 122)(233, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/be/be343c7a300518d0b06505feb2c6bf524ef6998a.svn-base ================================================ tableTexture texturing (9, 0)(26, 7)(155, 108)(194, 159)(255, 253) (9, 0)(50, 19)(218, 194)(255, 255) (0, 0)(29, 9)(162, 116)(218, 194)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/bf/bf44fee7478e97bd8be7ec343d88043770203c01.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/bf/bf9edbaaf9211827d72bbbea4ac10d79b4be0342.svn-base ================================================ { "version": 1, "category_name": "Charm", "fonts_array": [{ "font_id": 1, "font_name": "Sofia", "font_normal": "Sofia", "font_bold": "", "font_italic": "", "font_bolditalic": "Sofia" }, { "font_id": 2, "font_name": "Ostrich Sans", "font_normal": "Ostrich Sans", "font_bold": "OstrichSans-Bold", "font_italic": "", "font_bolditalic": "OstrichSans-Bold" }, { "font_id": 3, "font_name": "Bearpaw", "font_normal": "Bearpaw", "font_bold": "", "font_italic": "", "font_bolditalic": "Bearpaw" }, { "font_id": 4, "font_name": "American Typewriter", "font_normal": "AmericanTypewriter", "font_bold": "", "font_italic": "", "font_bolditalic": "AmericanTypewriter-Bold" }, { "font_id": 5, "font_name": "Stencil Std", "font_normal": "Stencil Std", "font_bold": "", "font_italic": "", "font_bolditalic": "Stencil Std" }, { "font_id": 6, "font_name": "Brush Script MT", "font_normal": "Brush Script", "font_bold": "", "font_italic": "", "font_bolditalic": "Brush Script" }, { "font_id": 7, "font_name": "Noteworthy", "font_normal": "Noteworthy", "font_bold": "Noteworthy-Bold", "font_italic": "", "font_bolditalic": "Noteworthy-Bold" }, { "font_id": 8, "font_name": "Miama", "font_normal": "Miama", "font_bold": "", "font_italic": "", "font_bolditalic": "Miama" }, { "font_id": 9, "font_name": "Blackout", "font_normal": "Blackout", "font_bold": "", "font_italic": "", "font_bolditalic": "Blackout" }, { "font_id": 10, "font_name": "Muli", "font_normal": "Muli", "font_bold": "", "font_italic": "Muli-Italic", "font_bolditalic": "Muli-Italic" }, { "font_id": 11, "font_name": "padaloma italic", "font_normal": "padaloma", "font_bold": "", "font_italic": "", "font_bolditalic": "padaloma" }, { "font_id": 12, "font_name": "Josefin Sans", "font_normal": "Josefin Sans", "font_bold": "JosefinSans-Bold", "font_italic": "JosefinSans-Italic", "font_bolditalic": "JosefinSans-BoldItalic" }, { "font_id": 13, "font_name": "Garogier", "font_normal": "Garogier", "font_bold": "", "font_italic": "", "font_bolditalic": "Garogier" } ] } ================================================ FILE: FotorSDKDemo/.svn/pristine/c2/c23441412ad977e31ea47c1c9a36b40e7ccfd9ed.svn-base ================================================ SRC DST -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 ================================================ FILE: FotorSDKDemo/.svn/pristine/c2/c2c73d6a2e7bbbb96d7bc4ea437dc3f1fa91def2.svn-base ================================================ tableTexture texturing (0, 0)(69, 93)(126, 160)(210, 232)(255, 255) (0, 0)(36, 47)(135, 169)(250, 254) (0, 0)(28, 30)(107, 137)(147, 206)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/c3/c3a026561fa183457b2a6d76c8ff1c41571de3e5.svn-base ================================================ SRC level GetScale 0.1 0.1 1.0 level TMP quadric 0.0 1.0 tableTexture texturing (0, 0)(127, 145)(255, 229) (0, 0)(63, 66)(127, 144)(255, 223) (0, 0)(127, 117)(255, 195) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/c4/c45b011a7116d9ca54d4a6016811dba3b50daa14.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/c6/c638ea07b1de337b786d0e0abe47669d7c9a1428.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns.Action; import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import java.util.ArrayList; import java.util.List; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.view.View.OnLongClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; Button mEditButton; Button mGalleryButton; ImageView mImage; View mImageContainer; String mOutputFilePath; Uri mImageUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mImageUri != null) { startFeature(mImageUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mImageContainer.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Uri uri = pickRandomImage(); if (uri != null) { Log.d(LOG_TAG, "image uri: " + uri); loadAsync(uri); } } }); mImageContainer.setLongClickable(true); mImageContainer.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { if (mImageUri != null) { Log.d(LOG_TAG, "onLongClick: " + v); openContextMenu(v); return true; } return false; } }); mGalleryFolder = createFolders(); mImageContainer.performClick(); } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); mImageContainer = findViewById(R.id.image_container); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = Uri.parse(mOutputFilePath); loadAsync(uri); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Cursor cursor = getContentResolver().query( ActionsColumns.getContentUri(this, mSessionId), null, null, null, null); if (cursor != null && cursor.getCount() > 0) { List actions = new ArrayList(); while (cursor.moveToNext()) { Action action = Action.create(cursor); System.out.println("action:" + action); actions.add(action); } cursor.close(); } else { System.out.println("cursor doesn't have datas."); } Cursor cursor2 = getContentResolver().query( SessionColumns.getContentUri(this, mSessionId), null, null, null, null); Session session = Session.create(cursor2); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, mSessionId); fotorHDFilter.loadImage(session.file_name); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ @SuppressWarnings("deprecation") private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { showDialog(EXTERNAL_STORAGE_UNAVAILABLE); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = file.getAbsolutePath(); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // === FEATURE LIST === // newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { // FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), // FotorFeaturesFactory.FeatureType.BORDER.name() }); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) (displayMetrics.widthPixels / 1.5); int maxH = (int) (displayMetrics.heightPixels / 1.5); Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); // bitmap = BitmapFactory.decodeFile(mUri.toString(), options); // int angel = 0; // try { // ExifInterface exif = new ExifInterface(mUri.toString()); // int orientation = exif.getAttributeInt( // ExifInterface.TAG_ORIENTATION, -1); // if (orientation != -1) { // switch (orientation) { // case ExifInterface.ORIENTATION_ROTATE_90: // angel = 90; // break; // case ExifInterface.ORIENTATION_ROTATE_180: // angel = 180; // break; // case ExifInterface.ORIENTATION_ROTATE_270: // angel = 270; // break; // default: // break; // } // } // } catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // if (angel != 0) { // Matrix matrix = new Matrix(); // matrix.setRotate(angel); // bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), // bitmap.getHeight(), matrix, true); // } return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/c7/c76f4caaa7a8dfe9727fa93001b3aee3b22d6716.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/c8/c8599aad41212c2740da5be7edf2e2c783ca6b3c.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorFeaturesFactory; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorSDKVersion; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; /** * Sample main activity * * @description * * @author John.Zhang * @version 1.0 * @create Apr 12, 2014 3:06:39 PM * @update Apr 12, 2014 3:06:39 PM */ public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; /** Edit sample button */ Button mEditButton; /** Call gallery button */ Button mGalleryButton; /** Display image view */ ImageView mImage; /** The path for output file */ Uri mOutputFilePath; /** Image uri for image editor */ Uri mImageUri; /** Display version label for DEBUG */ private TextView mSDKVersionLabel; /** The sample image uri. */ private Uri mSampleUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mImageUri != null) { startFeature(mImageUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mGalleryFolder = createFolders(); // add sample image mSampleUri = Uri.parse("file:///android_asset/sample.jpg"); loadAsync(mSampleUri); if (BuildConfig.DEBUG) { mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION); } } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = data.getData(); Bitmap bitmap = BitmapDecodeUtils.decode(this, uri, 0, 0); setImageURI(uri, bitmap); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); startFeature(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Uri sessionUri = SessionColumns.getContentUri(this, mSessionId); Cursor cursor = getContentResolver().query(sessionUri, null, null, null, null); Session session = Session.create(cursor); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session); fotorHDFilter.loadImage(); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ @SuppressWarnings("deprecation") private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { showDialog(EXTERNAL_STORAGE_UNAVAILABLE); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = Uri.fromFile(file); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); // newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // // === FEATURE LIST === // newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { // FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), // FotorFeaturesFactory.FeatureType.BORDER.name() }); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) (displayMetrics.widthPixels / 1.5); int maxH = (int) (displayMetrics.heightPixels / 1.5); Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/ca/ca5b6be5c09bf337b98c9ae5f0003e71351cdc84.svn-base ================================================ vtg.png SRC dst 0.650, 0.2935, 0.057 0.1495, 0.7935, 0.057 0.1495, 0.2935, 0.557 tableTexture1 texturing (4, 35)(71, 79)(140, 160)(178, 233)(209, 255) (9, 0)(73, 61)(140, 162)(203, 224)(248, 248) (0, 31)(110, 102)(145, 148)(195, 183)(233, 213)(253, 236) tableTexture2 texturing (5, 37)(69, 85)(119, 151)(157, 213)(208, 255) (13, 5)(74, 78)(109, 144)(156, 201)(250, 250) (2, 36)(63, 73)(93, 112)(175, 190)(241, 227)(255, 235) dst tableTexture1 dst_a dst tableTexture2 dst_b dst_a dst_b specialAlphaTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/cc/cc20d32e79cef0c3a4289b3e8b3bfe689b8ffbc8.svn-base ================================================ { "version": 1, "category_name": "Charm", "fonts_array": [{ "font_id": 1, "font_name": "Sofia", "font_normal": "Sofia", "font_bold": "", "font_italic": "", "font_bolditalic": "Sofia" }, { "font_id": 2, "font_name": "Ostrich Sans", "font_normal": "Ostrich Sans", "font_bold": "OstrichSans-Bold", "font_italic": "", "font_bolditalic": "OstrichSans-Bold" }, { "font_id": 3, "font_name": "Bearpaw", "font_normal": "Bearpaw", "font_bold": "", "font_italic": "", "font_bolditalic": "Bearpaw" }, { "font_id": 4, "font_name": "American Typewriter", "font_normal": "AmericanTypewriter", "font_bold": "", "font_italic": "", "font_bolditalic": "AmericanTypewriter-Bold" }, { "font_id": 5, "font_name": "Stencil Std", "font_normal": "Stencil Std", "font_bold": "", "font_italic": "", "font_bolditalic": "Stencil Std" }, { "font_id": 6, "font_name": "Brush Script MT", "font_normal": "Brush Script", "font_bold": "", "font_italic": "", "font_bolditalic": "Brush Script" }, { "font_id": 7, "font_name": "Noteworthy", "font_normal": "Noteworthy", "font_bold": "", "font_italic": "", "font_bolditalic": "" }, { "font_id": 8, "font_name": "Miama", "font_normal": "Miama", "font_bold": "", "font_italic": "", "font_bolditalic": "Miama" }, { "font_id": 9, "font_name": "Blackout", "font_normal": "Blackout", "font_bold": "", "font_italic": "", "font_bolditalic": "Blackout" }, { "font_id": 10, "font_name": "Muli", "font_normal": "Muli", "font_bold": "", "font_italic": "Muli-Italic", "font_bolditalic": "Muli-Italic" }, { "font_id": 11, "font_name": "padaloma italic", "font_normal": "padaloma", "font_bold": "", "font_italic": "", "font_bolditalic": "padaloma" }, { "font_id": 12, "font_name": "Josefin Sans", "font_normal": "Josefin Sans", "font_bold": "JosefinSans-Bold", "font_italic": "JosefinSans-Italic", "font_bolditalic": "JosefinSans-BoldItalic" }, { "font_id": 13, "font_name": "Garogier", "font_normal": "Garogier", "font_bold": "", "font_italic": "", "font_bolditalic": "Garogier" } ] } ================================================ FILE: FotorSDKDemo/.svn/pristine/cc/ccbfb0bce061fdc77c89d57b79abababbe498b25.svn-base ================================================ SRC technicolor 0.992, 0.137, 0.314 0.204, 0.98, 0.725 technicolor DST linear 0.0 0.7 ================================================ FILE: FotorSDKDemo/.svn/pristine/d2/d2c70b5f789a420e8fb9aafe2f197a7d852acf47.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/d2/d2cf8c1c7967e5c36aee75d35aa80376db1464aa.svn-base ================================================ tableTexture texturing (2, 2)(16, 30)(72, 112)(135, 185)(252, 255) (2, 1)(30, 42)(55, 84)(157, 207)(238, 249) (1, 0)(26, 17)(67, 106)(114, 165)(231, 250) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/d2/d2d1c889e08d06619782c4bad9c91d7a7e538d60.svn-base ================================================ [["stickers_text_1.png", "stickers_text_1_icon.png"], ["stickers_text_2.png", "stickers_text_2_icon.png"], ["stickers_text_3.png", "stickers_text_3_icon.png"], ["stickers_text_4.png", "stickers_text_4_icon.png"], ["stickers_text_5.png", "stickers_text_5_icon.png"], ["stickers_text_6.png", "stickers_text_6_icon.png"], ["stickers_text_7.png", "stickers_text_7_icon.png"]] ================================================ FILE: FotorSDKDemo/.svn/pristine/d7/d746fd0f09198fe8afc04b64bddd20d9909584ed.svn-base ================================================ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 org.eclipse.jdt.core.compiler.compliance=1.6 org.eclipse.jdt.core.compiler.source=1.6 ================================================ FILE: FotorSDKDemo/.svn/pristine/da/da770fb0f41f62c3c00ea1980d072e9002bd7160.svn-base ================================================ tableTexture texturing (14, 0)(51, 42)(135, 138)(191, 202)(234, 255) (11, 6)(78, 77)(178, 185)(242, 250) (11, 0)(22, 10)(72, 60)(171, 162)(217, 209)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/db/db7036fb113dd74422a670234ac70c592144a735.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorFeaturesFactory; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorSDKVersion; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns.Action; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import java.util.ArrayList; import java.util.List; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; Button mEditButton; Button mGalleryButton; ImageView mImage; String mOutputFilePath; Uri mImageUri; private TextView mSDKVersionLabel; private Uri mSampleUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mImageUri != null) { startFeature(mImageUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mGalleryFolder = createFolders(); // add sample image mSampleUri = Uri.parse("file:///android_asset/sample.jpg"); loadAsync(mSampleUri); if (BuildConfig.DEBUG) { mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION); } } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = Uri.parse(mOutputFilePath); Bitmap bitmap = BitmapDecodeUtils.decodeFile(mOutputFilePath); setImageURI(uri, bitmap); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); startFeature(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Uri sessionUri = SessionColumns.getContentUri(this, mSessionId); Cursor cursor = getContentResolver().query(sessionUri, null, null, null, null); if (cursor != null && cursor.getCount() > 0) { List actions = new ArrayList(); while (cursor.moveToNext()) { Action action = Action.create(cursor); System.out.println("action:" + action); actions.add(action); } cursor.close(); } else { System.out.println("cursor doesn't have datas."); } Cursor cursor2 = getContentResolver().query( SessionColumns.getContentUri(this, mSessionId), null, null, null, null); Session session = Session.create(cursor2); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session); fotorHDFilter.loadImage(); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ @SuppressWarnings("deprecation") private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { showDialog(EXTERNAL_STORAGE_UNAVAILABLE); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = file.getAbsolutePath(); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // === FEATURE LIST === newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), FotorFeaturesFactory.FeatureType.BORDER.name() }); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) (displayMetrics.widthPixels / 1.5); int maxH = (int) (displayMetrics.heightPixels / 1.5); Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/db/dbfff77ed8b045f7db605f34bd6894b81f471e40.svn-base ================================================ tableTexture texturing (35, 43)(159, 194)(255, 255) (0, 26)(141, 157)(255, 218) (0, 81)(255, 145) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/dd/dd476b2d84d744357129a743cd223f9a7264dd29.svn-base ================================================ ["6.xml","10.xml","114.xml","111.xml","112.xml","28.xml"] ================================================ FILE: FotorSDKDemo/.svn/pristine/de/def85b8417714285df94a8c429a38b2a4b7484c1.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorFeaturesFactory; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns.Action; import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import java.util.ArrayList; import java.util.List; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.view.View.OnLongClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; Button mEditButton; Button mGalleryButton; ImageView mImage; String mOutputFilePath; Uri mImageUri; private Uri mSampleUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mImageUri != null) { startFeature(mImageUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mGalleryFolder = createFolders(); // add sample image mSampleUri = Uri.parse("file:///android_asset/sample.jpg"); loadAsync(mSampleUri); } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = Uri.parse(mOutputFilePath); Bitmap bitmap = BitmapDecodeUtils.decodeFile(mOutputFilePath); setImageURI(uri, bitmap); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); startFeature(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Uri sessionUri = SessionColumns.getContentUri(this, mSessionId); Cursor cursor = getContentResolver().query(sessionUri, null, null, null, null); if (cursor != null && cursor.getCount() > 0) { List actions = new ArrayList(); while (cursor.moveToNext()) { Action action = Action.create(cursor); System.out.println("action:" + action); actions.add(action); } cursor.close(); } else { System.out.println("cursor doesn't have datas."); } Cursor cursor2 = getContentResolver().query( SessionColumns.getContentUri(this, mSessionId), null, null, null, null); Session session = Session.create(cursor2); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session); fotorHDFilter.loadImage(); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ @SuppressWarnings("deprecation") private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { showDialog(EXTERNAL_STORAGE_UNAVAILABLE); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = file.getAbsolutePath(); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // === FEATURE LIST === newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), FotorFeaturesFactory.FeatureType.BORDER.name() }); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) (displayMetrics.widthPixels / 1.5); int maxH = (int) (displayMetrics.heightPixels / 1.5); Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/df/df12c72fbf4c9efa7ced7128be02be12d28f8be2.svn-base ================================================ 118S.png S ================================================ FILE: FotorSDKDemo/.svn/pristine/df/dff6fa5bd214c31be5f3588dcef7d57da534c3ea.svn-base ================================================ 38M_0.png 38M_1.png 38M_2.png 38M_3.png 38M_4.png 38M_5.png 38M_6.png 38M_7.png 38M.png M 0.5 728 728 0 0 360 360 360 0 8 360 368 0 360 360 368 360 360 8 368 368 360 360 360 368 8 360 0 368 360 360 0 360 360 8 ================================================ FILE: FotorSDKDemo/.svn/pristine/e1/e12d1118511ba975aabcc8987e48193b2af082f8.svn-base ================================================ tableTexture texturing (0, 0)(35, 71)(153, 197)(255, 255) (0, 15)(16, 36)(109, 132)(255, 255) (0, 23)(181, 194)(255, 230) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/e5/e58d1d1cca31823b6c949d25e3f910163baff087.svn-base ================================================ SRC level GetScale 0.01 0.2 0.0 level DST quadric 0.0 1.0 ================================================ FILE: FotorSDKDemo/.svn/pristine/e5/e5fd87210cf8e3134cdf6db3ca6e4bb5e763fd39.svn-base ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorFeaturesFactory; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorSDKVersion; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; Button mEditButton; Button mGalleryButton; ImageView mImage; String mOutputFilePath; Uri mImageUri; private TextView mSDKVersionLabel; private Uri mSampleUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mImageUri != null) { startFeature(mImageUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mGalleryFolder = createFolders(); // add sample image mSampleUri = Uri.parse("file:///android_asset/sample.jpg"); loadAsync(mSampleUri); if (BuildConfig.DEBUG) { mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION); } } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = Uri.parse(mOutputFilePath); Bitmap bitmap = BitmapDecodeUtils.decodeFile(mOutputFilePath); setImageURI(uri, bitmap); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); startFeature(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Uri sessionUri = SessionColumns.getContentUri(this, mSessionId); Cursor cursor = getContentResolver().query(sessionUri, null, null, null, null); Session session = Session.create(cursor); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session); fotorHDFilter.loadImage(); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ @SuppressWarnings("deprecation") private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { showDialog(EXTERNAL_STORAGE_UNAVAILABLE); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = file.getAbsolutePath(); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // // === FEATURE LIST === // newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { // FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), // FotorFeaturesFactory.FeatureType.BORDER.name() }); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) (displayMetrics.widthPixels / 1.5); int maxH = (int) (displayMetrics.heightPixels / 1.5); Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: FotorSDKDemo/.svn/pristine/e8/e802dc31ea7817e0e611f26f527618269e7b9895.svn-base ================================================ e164_c1.jpg tableTexture texturing (33, 0)(70, 32)(146, 143)(185, 204)(255, 255) (22, 0)(103, 71)(189, 219)(255, 252) (10, 0)(54, 29)(93, 66)(205, 220)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/eb/eb91474a5fbe05784d1169e1bd1af97911acdfe7.svn-base ================================================ tableTexture1 texturing (16, 0)(60, 45)(124, 124)(214, 255) (18, 2)(91, 81)(156, 169)(213, 255) (16, 0)(85, 74)(158, 171)(211, 255) tableTexture2 texturing (17, 0)(144, 150)(214, 255) (16, 0)(61, 47)(160, 172)(215, 255) (21, 2)(131, 135)(213, 255) SRC TMP tableTexture1 TMP DST tableTexture2 ================================================ FILE: FotorSDKDemo/.svn/pristine/ec/ec17221211c0d4f95cbd5d9586967d5c1bd4cbb1.svn-base ================================================ ================================================ FILE: FotorSDKDemo/.svn/pristine/ec/ec2d462cec313ade3c58f5193873d2bb9392de97.svn-base ================================================ e114_t.png SRC level GetScale 0.01 0.2 1.0 level DST texture exclusion 0.51 ================================================ FILE: FotorSDKDemo/.svn/pristine/ec/ec5e2b3cae849767bc704510ce8fac611180af2a.svn-base ================================================ e170_c1.jpg tableTexture texturing (2, 2)(16, 30)(72, 112)(135, 185)(252, 255) (2, 1)(30, 42)(55, 84)(157, 207)(238, 249) (1, 0)(26, 17)(67, 106)(114, 165)(231, 250) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/f1/f14d9e38fb84776985991713c82bf11019b4b9e6.svn-base ================================================ tableTexture texturing (0, 0)(43, 77)(56, 104)(100, 166)(255, 255) (0, 0)(35, 53)(255, 255) (0, 0)(110, 123)(255, 212) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/f1/f1571592a039ac77a7f934df44222f51f12cee3d.svn-base ================================================ # This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system edit # "ant.properties", and override values to adapt the script to your # project structure. # # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android-19 android.library.reference.1=../FotorSDK #renderscript.support.mode=true ================================================ FILE: FotorSDKDemo/.svn/pristine/f1/f1b2c78e811175926d162a5088dc55f156b79264.svn-base ================================================ tableTexture texturing 0, 0 69, 63 105, 138 151, 222 255, 255 0, 0 67, 51 135, 191 255, 255 0, 0 86, 76 150, 212 255, 255 SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/fa/fa13a5cdfb112cbf1dd7970583865c6a1b366285.svn-base ================================================ tableTexture texturing (15, 0)(45, 37)(92, 103)(230, 255) (19, 0)(34, 22)(138, 158)(228, 252) (19, 0)(74, 63)(159, 166)(230, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/fb/fb3c77eb561a6439d8e4cf4495bd45af2ec726c3.svn-base ================================================ tableTexture texturing (15, 0)(92, 133)(255, 234) (0, 20)(105, 128)(255, 255) (0, 0)(120, 132)(255, 214) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/.svn/pristine/fc/fce80b1ca55cc48ef67a1336156c362e41a98c1d.svn-base ================================================ { "version": 1, "category_name": "Classic", "fonts_array": [{ "font_id": 1, "font_name": "Sofia", "font_normal": "Sofia", "font_bold": "", "font_italic": "", "font_bolditalic": "Sofia" }, { "font_id": 2, "font_name": "Ostrich Sans", "font_normal": "Ostrich Sans", "font_bold": "OstrichSans-Bold", "font_italic": "", "font_bolditalic": "OstrichSans-Bold" }, { "font_id": 3, "font_name": "Bearpaw", "font_normal": "Bearpaw", "font_bold": "", "font_italic": "", "font_bolditalic": "Bearpaw" }, { "font_id": 4, "font_name": "American Typewriter", "font_normal": "AmericanTypewriter", "font_bold": "AmericanTypewriter-Bold", "font_italic": "", "font_bolditalic": "AmericanTypewriter-Bold" }, { "font_id": 5, "font_name": "Stencil Std", "font_normal": "Stencil Std", "font_bold": "", "font_italic": "", "font_bolditalic": "Stencil Std" }, { "font_id": 6, "font_name": "Brush Script MT", "font_normal": "Brush Script", "font_bold": "", "font_italic": "", "font_bolditalic": "Brush Script" }, { "font_id": 7, "font_name": "Noteworthy", "font_normal": "Noteworthy", "font_bold": "Noteworthy-Bold", "font_italic": "", "font_bolditalic": "Noteworthy-Bold" }, { "font_id": 8, "font_name": "Miama", "font_normal": "Miama", "font_bold": "", "font_italic": "", "font_bolditalic": "Miama" }, { "font_id": 9, "font_name": "Blackout", "font_normal": "Blackout", "font_bold": "", "font_italic": "", "font_bolditalic": "Blackout" }, { "font_id": 10, "font_name": "Muli", "font_normal": "Muli", "font_bold": "", "font_italic": "Muli-Italic", "font_bolditalic": "Muli-Italic" }, { "font_id": 11, "font_name": "padaloma italic", "font_normal": "padaloma", "font_bold": "", "font_italic": "", "font_bolditalic": "padaloma" }, { "font_id": 12, "font_name": "Josefin Sans", "font_normal": "Josefin Sans", "font_bold": "JosefinSans-Bold", "font_italic": "JosefinSans-Italic", "font_bolditalic": "JosefinSans-BoldItalic" }, { "font_id": 13, "font_name": "Garogier", "font_normal": "Garogier", "font_bold": "", "font_italic": "", "font_bolditalic": "Garogier" } ] } ================================================ FILE: FotorSDKDemo/.svn/pristine/ff/ff8404bbffc5935a8deae296970b410b56f2be02.svn-base ================================================ 51S_s.png S ================================================ FILE: FotorSDKDemo/.svn/pristine/ff/ffb9369fe3688fcdb52ceb0d6d46bbbd6d909e7e.svn-base ================================================ 51S.png S ================================================ FILE: FotorSDKDemo/AndroidManifest.xml ================================================ ================================================ FILE: FotorSDKDemo/assets/border_config/Gallery/10M.xml ================================================ 10M_0.png 10M_1.png 10M_2.png 10M_3.png 10M_4.png 10M_5.png 10M_6.png 10M_7.png 10M.png M 0.08 174 174 0 0 72 72 72 0 30 72 102 0 72 72 102 72 72 30 102 102 72 72 72 102 30 72 0 102 72 72 0 72 72 30 ================================================ FILE: FotorSDKDemo/assets/border_config/Gallery/118S.xml ================================================ 118S.png S ================================================ FILE: FotorSDKDemo/assets/border_config/Gallery/3M.xml ================================================ 3M_0.png 3M_1.png 3M_2.png 3M_3.png 3M_4.png 3M_5.png 3M_6.png 3M_7.png 3M.png M 0.05 161 161 0 0 80 80 80 0 1 80 81 0 80 80 81 80 80 1 81 81 80 80 80 81 1 80 0 81 80 80 0 80 80 1 ================================================ FILE: FotorSDKDemo/assets/border_config/Gallery/41M.xml ================================================ 41M_0.png 41M_1.png 41M_2.png 41M_3.png 41M_4.png 41M_5.png 41M_6.png 41M_7.png 41M.png M 0.05 170 170 0 0 70 70 70 0 30 70 100 0 70 70 100 70 70 30 100 100 70 70 70 100 30 70 0 100 70 70 0 70 70 30 ================================================ FILE: FotorSDKDemo/assets/border_config/Gallery/42M.xml ================================================ 42M_0.png 42M_1.png 42M_2.png 42M_3.png 42M_4.png 42M_5.png 42M_6.png 42M_7.png 42M.png M 0.1 362 362 0 0 166 166 166 0 30 166 196 0 166 166 196 166 166 30 196 196 166 166 166 196 30 166 0 196 166 166 0 166 166 30 ================================================ FILE: FotorSDKDemo/assets/border_config/Gallery/Config.json ================================================ { "borderItems":[ {"filename":"118S.xml","thumbThickness":0.14}, {"filename":"42M.xml","thumbThickness":0.19}, {"filename":"10M.xml","thumbThickness":0.139}, {"filename":"3M.xml","thumbThickness":0.105}, {"filename":"41M.xml","thumbThickness":0.11}] ,"packName":"Gallery"} ================================================ FILE: FotorSDKDemo/assets/border_config/Simple/23M.xml ================================================ 23M_0.png 23M_1.png 23M_2.png 23M_3.png 23M_4.png 23M_5.png 23M_6.png 23M_7.png 23M.png M 0.1 264 264 0 0 112 112 112 0 40 112 152 0 112 112 152 112 112 40 152 152 112 112 112 152 40 112 0 152 112 112 0 112 112 40 ================================================ FILE: FotorSDKDemo/assets/border_config/Simple/29M.xml ================================================ 29M_0.png 29M_10.png 29M_2.png 29M_3.png 29M_4.png 29M_5.png 29M_6.png 29M_7.png 29M.png M 0.12 186 186 0 0 88 88 88 0 10 88 98 0 88 88 98 88 88 10 98 98 88 88 88 98 10 88 0 98 88 88 0 88 88 10 ================================================ FILE: FotorSDKDemo/assets/border_config/Simple/2M.xml ================================================ 2M_0.png 2M_1.png 2M_2.png 2M_3.png 2M_4.png 2M_5.png 2M_6.png 2M_7.png 2M.png M 0.05 133 133 0 0 66 66 66 0 1 66 67 0 66 66 67 66 66 1 67 67 66 66 66 67 1 66 0 67 66 66 0 66 66 1 ================================================ FILE: FotorSDKDemo/assets/border_config/Simple/36M.xml ================================================ 36M_0.png 36M_1.png 36M_2.png 36M_3.png 36M_4.png 36M_5.png 36M_6.png 36M_7.png 36M.png M 0.6 728 728 0 0 360 360 360 0 8 360 368 0 360 360 368 360 360 8 368 368 360 360 360 368 8 360 0 368 360 360 0 360 360 8 ================================================ FILE: FotorSDKDemo/assets/border_config/Simple/38M.xml ================================================ 38M_0.png 38M_1.png 38M_2.png 38M_3.png 38M_4.png 38M_5.png 38M_6.png 38M_7.png 38M.png M 0.5 728 728 0 0 360 360 360 0 8 360 368 0 360 360 368 360 360 8 368 368 360 360 360 368 8 360 0 368 360 360 0 360 360 8 ================================================ FILE: FotorSDKDemo/assets/border_config/Simple/Config.json ================================================ { "borderItems":[ {"filename":"23M.xml","thumbThickness":0.27}, {"filename":"29M.xml","thumbThickness":0.23}, {"filename":"2M.xml","thumbThickness":0.1}, {"filename":"36M.xml","thumbThickness":0.8}, {"filename":"38M.xml","thumbThickness":0.8}] ,"packName":"Simple"} ================================================ FILE: FotorSDKDemo/assets/border_config/Styled/30S.xml ================================================ 30S.png S ================================================ FILE: FotorSDKDemo/assets/border_config/Styled/37S.xml ================================================ 37S.png S ================================================ FILE: FotorSDKDemo/assets/border_config/Styled/43S.xml ================================================ 43S.png S ================================================ FILE: FotorSDKDemo/assets/border_config/Styled/49S.xml ================================================ 49S.png S ================================================ FILE: FotorSDKDemo/assets/border_config/Styled/51S.xml ================================================ 51S.png S ================================================ FILE: FotorSDKDemo/assets/border_config/Styled/Config.json ================================================ { "borderItems":[ {"filename":"30S.xml","thumbThickness":0.05}, {"filename":"37S.xml","thumbThickness":0.05}, {"filename":"43S.xml","thumbThickness":0.05}, {"filename":"49S.xml","thumbThickness":0.05}, {"filename":"51S.xml","thumbThickness":0.05}] ,"packName":"Styled"} ================================================ FILE: FotorSDKDemo/assets/fonts_config/Charm/Config.json ================================================ { "version": 1, "category_name": "Charm", "fonts_array": [{ "font_id": 1, "font_name": "Sofia", "font_normal": "Sofia", "font_bold": "", "font_italic": "", "font_bolditalic": "Sofia" }, { "font_id": 2, "font_name": "Ostrich Sans", "font_normal": "Ostrich Sans", "font_bold": "OstrichSans-Bold", "font_italic": "", "font_bolditalic": "OstrichSans-Bold" }, { "font_id": 3, "font_name": "Bearpaw", "font_normal": "Bearpaw", "font_bold": "", "font_italic": "", "font_bolditalic": "Bearpaw" }, { "font_id": 4, "font_name": "American Typewriter", "font_normal": "AmericanTypewriter", "font_bold": "", "font_italic": "", "font_bolditalic": "AmericanTypewriter-Bold" }, { "font_id": 5, "font_name": "Stencil Std", "font_normal": "Stencil Std", "font_bold": "", "font_italic": "", "font_bolditalic": "Stencil Std" }, { "font_id": 6, "font_name": "Brush Script MT", "font_normal": "Brush Script", "font_bold": "", "font_italic": "", "font_bolditalic": "Brush Script" }, { "font_id": 7, "font_name": "Noteworthy", "font_normal": "Noteworthy", "font_bold": "", "font_italic": "", "font_bolditalic": "" }, { "font_id": 8, "font_name": "Miama", "font_normal": "Miama", "font_bold": "", "font_italic": "", "font_bolditalic": "Miama" }, { "font_id": 9, "font_name": "Blackout", "font_normal": "Blackout", "font_bold": "", "font_italic": "", "font_bolditalic": "Blackout" }, { "font_id": 10, "font_name": "Muli", "font_normal": "Muli", "font_bold": "", "font_italic": "Muli-Italic", "font_bolditalic": "Muli-Italic" }, { "font_id": 11, "font_name": "padaloma italic", "font_normal": "padaloma", "font_bold": "", "font_italic": "", "font_bolditalic": "padaloma" }, { "font_id": 12, "font_name": "Josefin Sans", "font_normal": "Josefin Sans", "font_bold": "JosefinSans-Bold", "font_italic": "JosefinSans-Italic", "font_bolditalic": "JosefinSans-BoldItalic" }, { "font_id": 13, "font_name": "Garogier", "font_normal": "Garogier", "font_bold": "", "font_italic": "", "font_bolditalic": "Garogier" } ] } ================================================ FILE: FotorSDKDemo/assets/fonts_config/Classic/Config.json ================================================ { "version": 1, "category_name": "Classic", "fonts_array": [{ "font_id": 1, "font_name": "Droid Sans", "font_normal": "DroidSans", "font_bold": "DroidSans-Bold", "font_italic": "", "font_bolditalic": "" }, { "font_id": 2, "font_name": "Droid Serif", "font_normal": "DroidSerif", "font_bold": "DroidSerif-Bold", "font_italic": "DroidSerif-Italic", "font_bolditalic": "DroidSerif-BoldItalic" }, { "font_id": 3, "font_name": "Droid Sans Mono", "font_normal": "DroidSansMono", "font_bold": "", "font_italic": "", "font_bolditalic": "" }, { "font_id": 4, "font_name": "Roboto Regular", "font_normal": "Roboto-Regular", "font_bold": "Roboto-Bold", "font_italic": "Roboto-Italic", "font_bolditalic": "Roboto-BoldItalic" }, { "font_id": 5, "font_name": "Roboto Thin", "font_normal": "Roboto-Thin", "font_bold": "", "font_italic": "Roboto-ThinItalic", "font_bolditalic": "" }, { "font_id": 6, "font_name": "Roboto Condensed", "font_normal": "RobotoCondensed-Regular", "font_bold": "RobotoCondensed-Bold", "font_italic": "RobotoCondensed-Italic", "font_bolditalic": "RobotoCondensed-BoldItalic" } ] } ================================================ FILE: FotorSDKDemo/assets/fx_config/Analog/11.xml ================================================ tableTexture texturing (48, 56)(82, 129)(130, 206)(214, 255) (7, 37)(64, 111)(140, 190)(232, 220) (2, 97)(114, 153)(229, 172) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Analog/27.xml ================================================ SRC DST -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 ================================================ FILE: FotorSDKDemo/assets/fx_config/Analog/73.xml ================================================ vtg.png tableTexture1 texturing (16, 0)(138, 133)(202, 185)(255, 213) (82, 0)(128, 85)(173, 145)(255, 207) (108, 62)(176, 137)(255, 184) tableTexture2 texturing (0, 105)(61, 167)(128, 221)(190, 236)(255, 255) (3, 0)(64, 98)(130, 191)(191, 228)(255, 255) (54, 62)(86, 101)(129, 155)(191, 192)(255, 222) SRC tableTexture1 dst_a SRC tableTexture2 dst_b dst_a dst_b specialAlphaTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Analog/74.xml ================================================ vtg.png SRC tmp -0.45 -0.45 -0.45 -0.45 -0.45 -0.45 tableTexture1 texturing (63, 35)(148, 116)(255, 208) (71, 0)(149, 84)(255, 187) (85, 22)(177, 87)(255, 148) tableTexture2 texturing (5, 42)(78, 129)(117, 178)(182, 219)(252, 253) (0, 0)(63, 84)(117, 157)(173, 204)(255, 241) (8, 26)(130, 147)(190, 197)(255, 217) tmp dst_a tableTexture1 tmp dst_b tableTexture2 dst_a dst_b specialAlphaTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Analog/75.xml ================================================ vtg.png tableTexture1 texturing (71, 0)(112, 62)(157, 148)(255, 232) (83, 0)(138, 113)(172, 173)(255, 223) (16, 0)(255, 194) tableTexture2 texturing (43, 0)(109, 88)(147, 167)(215, 255) (48, 1)(125, 117)(173, 211)(239, 255) (0, 25)(100, 105)(189, 176)(255, 228) SRC tableTexture1 dst_a SRC tableTexture2 dst_b dst_a dst_b specialAlphaTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Analog/76.xml ================================================ vtg.png SRC dst 0.650, 0.2935, 0.057 0.1495, 0.7935, 0.057 0.1495, 0.2935, 0.557 tableTexture1 texturing (4, 35)(71, 79)(140, 160)(178, 233)(209, 255) (9, 0)(73, 61)(140, 162)(203, 224)(248, 248) (0, 31)(110, 102)(145, 148)(195, 183)(233, 213)(253, 236) tableTexture2 texturing (5, 37)(69, 85)(119, 151)(157, 213)(208, 255) (13, 5)(74, 78)(109, 144)(156, 201)(250, 250) (2, 36)(63, 73)(93, 112)(175, 190)(241, 227)(255, 235) dst tableTexture1 dst_a dst tableTexture2 dst_b dst_a dst_b specialAlphaTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Analog/78.xml ================================================ vtg.png tableTexture1 texturing (16, 25)(59, 77)(101, 143)(173, 211)(255, 237) (24, 7)(85, 73)(124, 149)(185, 207)(249, 229) (30, 7)(105, 78)(150, 148)(200, 193)(255, 204) tableTexture2 texturing (16, 40)(52, 111)(124, 194)(172, 224)(231, 252) (19, 5)(71, 84)(110, 145)(167, 212)(222, 250) (21, 4)(67, 50)(143, 167)(237, 228) SRC tableTexture1 dst_a SRC tableTexture2 dst_b dst_a dst_b specialAlphaTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Analog/80.xml ================================================ vtg.png tableTexture1 texturing (22, 0)(120, 78)(208, 138)(255, 170) (77, 0)(143, 69)(255, 176) (45, 0)(159, 97)(255, 173) tableTexture2 texturing (7, 171)(92, 201)(255, 253) (0, 3)(61, 79)(110, 142)(186, 201)(255, 255) (0, 23)(53, 87)(103, 140)(186, 208)(239, 248) SRC tableTexture1 dst_a SRC tableTexture2 dst_b dst_a dst_b specialAlphaTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Analog/Config.json ================================================ ["11.xml","74.xml","76.xml","75.xml","73.xml","80.xml","78.xml","27.xml"] ================================================ FILE: FotorSDKDemo/assets/fx_config/Lomo/1.xml ================================================ SRC level GetScale 0.1 0.1 1.0 level TMP quadric 0.0 1.0 tableTexture texturing (0, 0)(127, 145)(255, 229) (0, 0)(63, 66)(127, 144)(255, 223) (0, 0)(127, 117)(255, 195) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Lomo/10.xml ================================================ tableTexture texturing (0, 4)(255, 244) (0, 0)(255, 255) (0, 84)(255, 194) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Lomo/102.xml ================================================ tableTexture texturing (33, 0)(104, 76)(167, 168)(218, 255) (30, 0)(112, 71)(174, 189)(234, 255) (8, 30)(160, 122)(233, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Lomo/103.xml ================================================ tableTexture texturing (35, 43)(159, 194)(255, 255) (0, 26)(141, 157)(255, 218) (0, 81)(255, 145) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Lomo/2.xml ================================================ SRC level GetScale 0.1 0.2 1.0 level TMP quadric 0.0 1.0 tableTexture texturing (0, 0)(127, 91)(255, 214) (0, 0)(127, 102)(255, 255) (0, 0)(127, 108)(255, 255) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Lomo/23.xml ================================================ SRC dst -0.5 -0.5 -0.5 -0.5 -0.5 -0.5 tableTexture texturing (0, 0)(129, 148)(255, 255) (0, 0)(92, 77)(175, 189)(255, 255) (0, 0)(163, 144)(255, 255) dst DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Lomo/4.xml ================================================ SRC level GetScale 0.1 0.1 0.3 level TMP quadric 0.0 1.0 tableTexture texturing (0, 14)(63, 66)(129, 151)(208, 255) (0, 38)(63, 72)(127, 127)(196, 255) (0, 49)(63, 75)(127, 121)(202, 233)(255, 255) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Lomo/5.xml ================================================ tableTexture texturing (0, 0)(117, 95)(155, 171)(179, 225)(255, 255) (0, 0)(94, 66)(155, 176)(255, 255) (0, 0)(48, 59)(141, 130)(255, 224) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Lomo/7.xml ================================================ tableTexture texturing (0, 0)(43, 77)(56, 104)(100, 166)(255, 255) (0, 0)(35, 53)(255, 255) (0, 0)(110, 123)(255, 212) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Lomo/Config.json ================================================ ["1.xml","4.xml","23.xml","5.xml","102.xml","103.xml","2.xml","7.xml","10.xml"] ================================================ FILE: FotorSDKDemo/assets/fx_config/OldPicture/10.xml ================================================ tableTexture texturing 0, 4 255, 244 0, 0 255, 255 0, 84 255, 194 SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/OldPicture/111.xml ================================================ SRC DST GetScale 0.01 0.01 0.0 ================================================ FILE: FotorSDKDemo/assets/fx_config/OldPicture/112.xml ================================================ SRC level GetScale 0.01 0.2 0.0 level DST quadric 0.0 1.0 ================================================ FILE: FotorSDKDemo/assets/fx_config/OldPicture/114.xml ================================================ e114_t.png SRC level GetScale 0.01 0.2 1.0 level DST texture exclusion 0.51 ================================================ FILE: FotorSDKDemo/assets/fx_config/OldPicture/28.xml ================================================ SRC TMP GetScale 0.01 0.15 0.0 TMP DST quadric 0.0 0.8 ================================================ FILE: FotorSDKDemo/assets/fx_config/OldPicture/6.xml ================================================ tableTexture texturing 0, 0 69, 63 105, 138 151, 222 255, 255 0, 0 67, 51 135, 191 255, 255 0, 0 86, 76 150, 212 255, 255 SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/OldPicture/Config.json ================================================ ["6.xml","10.xml","114.xml","111.xml","112.xml","28.xml"] ================================================ FILE: FotorSDKDemo/assets/fx_config/Retro/104.xml ================================================ SRC TMP GetScale 0.01 0.01 0.0 TMP DST quadric 0.0 1.0 ================================================ FILE: FotorSDKDemo/assets/fx_config/Retro/118.xml ================================================ SRC level GetScale 0.01 0.2 0.0 level TMP linear 0.0 0.8 TMP DST 0.393, 0.769, 0.189 0.349, 0.686, 0.168 0.272, 0.534, 0.131 ================================================ FILE: FotorSDKDemo/assets/fx_config/Retro/16.xml ================================================ SRC level GetScale 0.01 0.01 1.0 level saturation 0.1 -0.7 -0.7 -0.7 -0.7 0.1 level hue hue 0.829 saturation hue DST normal 0.31 ================================================ FILE: FotorSDKDemo/assets/fx_config/Retro/17.xml ================================================ SRC level GetScale 0.01 0.01 1.0 level saturation -0.7 -0.7 -0.7 0.5 0.5 -0.7 SRC TMP 0.24314 0.07059 0.59215 saturation TMP DST overlay 0.25 ================================================ FILE: FotorSDKDemo/assets/fx_config/Retro/8.xml ================================================ tableTexture texturing (0, 0)(35, 71)(153, 197)(255, 255) (0, 15)(16, 36)(109, 132)(255, 255) (0, 23)(181, 194)(255, 230) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Retro/9.xml ================================================ tableTexture texturing (15, 0)(92, 133)(255, 234) (0, 20)(105, 128)(255, 255) (0, 0)(120, 132)(255, 214) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Retro/Config.json ================================================ ["118.xml","16.xml","8.xml","9.xml","104.xml","17.xml"] ================================================ FILE: FotorSDKDemo/assets/fx_config/Vintage/108.xml ================================================ SRC level GetScale 0.01 0.01 1.3 level TMP quadric 0.0 0.8 tableTexture texturing (33, 10)(255, 255) (0, 15)(86, 94)(171, 194)(255, 255) (0, 20)(255, 235) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Vintage/109.xml ================================================ SRC level GetScale 0.01 0.01 1.3 level TMP quadric 0.0 1.0 tableTexture texturing (0, 31)(106, 121)(255, 196) (0, 11)(64, 95)(132, 140)(255, 229) (0, 0)(157, 156)(255, 210) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Vintage/110.xml ================================================ SRC level GetScale 0.01 0.01 1.3 level TMP quadric 0.0 0.8 tableTexture texturing (20, 0)(150, 109)(255, 255) (30, 0)(97, 92)(163, 172)(255, 255) (0, 0)(240, 255) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Vintage/6.xml ================================================ tableTexture texturing (0, 0)(69, 63)(105, 138)(151, 222)(255, 255) (0, 0)(67, 51)(135, 191)(255, 255) (0, 0)(86, 76)(150, 212)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Vintage/91.xml ================================================ SRC technicolor 0.992, 0.137, 0.314 0.204, 0.98, 0.725 technicolor DST linear 0.0 0.7 ================================================ FILE: FotorSDKDemo/assets/fx_config/Vintage/93.xml ================================================ SRC TMP quadric 0.0 0.9 tableTexture texturing (0, 0)(89, 44)(179, 189)(222, 255) (0, 0)(64, 64)(185, 212)(255, 255) (0, 23)(255, 217) TMP DST tableTexture ================================================ FILE: FotorSDKDemo/assets/fx_config/Vintage/Config.json ================================================ ["108.xml","109.xml","110.xml","91.xml","93.xml","6.xml"] ================================================ FILE: FotorSDKDemo/assets/scenes/160.xml ================================================ tableTexture texturing (3, 0)(23, 29)(83, 116)(167, 206)(255, 255) (5, 0)(56, 64)(160, 189)(255, 255) (3, 0)(48, 49)(142, 167)(248, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/scenes/161.xml ================================================ tableTexture texturing (15, 0)(45, 37)(92, 103)(230, 255) (19, 0)(34, 22)(138, 158)(228, 252) (19, 0)(74, 63)(159, 166)(230, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/scenes/162.xml ================================================ tableTexture texturing (0, 4)(39, 103)(134, 223)(242, 255) (0, 3)(31, 85)(68, 155)(131, 255)(219, 255) (0, 3)(42, 110)(114, 207)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/scenes/163.xml ================================================ tableTexture texturing (17, 0)(37, 18)(75, 52)(238, 255) (16, 0)(53, 32)(113, 92)(236, 255) (16, 0)(80, 57)(171, 164)(235, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/scenes/164.xml ================================================ tableTexture texturing (33, 0)(70, 32)(146, 143)(185, 204)(255, 255) (22, 0)(103, 71)(189, 219)(255, 252) (10, 0)(54, 29)(93, 66)(205, 220)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/scenes/165.xml ================================================ tableTexture texturing (4, 4)(38, 38)(146, 146)(201, 202)(255, 255) (0, 0)(80, 74)(192, 187)(255, 255) (0, 0)(58, 58)(183, 184)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/scenes/166.xml ================================================ tableTexture texturing (5, 8)(36, 51)(115, 145)(201, 220)(255, 255) (6, 9)(67, 83)(169, 190)(255, 255) (3, 3)(55, 60)(177, 190)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/scenes/167.xml ================================================ tableTexture texturing (14, 0)(51, 42)(135, 138)(191, 202)(234, 255) (11, 6)(78, 77)(178, 185)(242, 250) (11, 0)(22, 10)(72, 60)(171, 162)(217, 209)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/scenes/168.xml ================================================ tableTexture texturing (9, 0)(26, 7)(155, 108)(194, 159)(255, 253) (9, 0)(50, 19)(218, 194)(255, 255) (0, 0)(29, 9)(162, 116)(218, 194)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/scenes/169.xml ================================================ tableTexture texturing (0, 0)(69, 93)(126, 160)(210, 232)(255, 255) (0, 0)(36, 47)(135, 169)(250, 254) (0, 0)(28, 30)(107, 137)(147, 206)(255, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/scenes/170.xml ================================================ tableTexture texturing (2, 2)(16, 30)(72, 112)(135, 185)(252, 255) (2, 1)(30, 42)(55, 84)(157, 207)(238, 249) (1, 0)(26, 17)(67, 106)(114, 165)(231, 250) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/scenes/171.xml ================================================ tableTexture1 texturing (16, 0)(60, 45)(124, 124)(214, 255) (18, 2)(91, 81)(156, 169)(213, 255) (16, 0)(85, 74)(158, 171)(211, 255) tableTexture2 texturing (17, 0)(144, 150)(214, 255) (16, 0)(61, 47)(160, 172)(215, 255) (21, 2)(131, 135)(213, 255) SRC TMP tableTexture1 TMP DST tableTexture2 ================================================ FILE: FotorSDKDemo/assets/scenes/173.xml ================================================ tableTexture texturing (9, 0)(49, 62)(124, 155)(218, 255) (10, 0)(30, 33)(137, 169)(223, 255) (10, 0)(37, 45)(96, 122)(150, 182)(221, 255) SRC DST tableTexture ================================================ FILE: FotorSDKDemo/assets/stickers_config/Boom/Config.json ================================================ [["stickers_boom_1.png", "stickers_boom_1_icon.png"], ["stickers_boom_2.png", "stickers_boom_2_icon.png"], ["stickers_boom_3.png", "stickers_boom_3_icon.png"], ["stickers_boom_4.png", "stickers_boom_4_icon.png"], ["stickers_boom_5.png", "stickers_boom_5_icon.png"], ["stickers_boom_6.png", "stickers_boom_6_icon.png"], ["stickers_boom_7.png", "stickers_boom_7_icon.png"], ["stickers_boom_8.png", "stickers_boom_8_icon.png"], ["stickers_boom_9.png", "stickers_boom_9_icon.png"], ["stickers_boom_10.png", "stickers_boom_10_icon.png"], ["stickers_boom_11.png", "stickers_boom_11_icon.png"], ["stickers_boom_12.png", "stickers_boom_12_icon.png"], ["stickers_boom_13.png", "stickers_boom_13_icon.png"], ["stickers_boom_14.png", "stickers_boom_14_icon.png"], ["stickers_boom_15.png", "stickers_boom_15_icon.png"], ["stickers_boom_16.png", "stickers_boom_16_icon.png"]] ================================================ FILE: FotorSDKDemo/assets/stickers_config/Decoration/Config.json ================================================ [["stickers_decoration_1.png", "stickers_decoration_1_icon.png"], ["stickers_decoration_2.png", "stickers_decoration_2_icon.png"], ["stickers_decoration_3.png", "stickers_decoration_3_icon.png"], ["stickers_decoration_4.png", "stickers_decoration_4_icon.png"], ["stickers_decoration_5.png", "stickers_decoration_5_icon.png"], ["stickers_decoration_6.png", "stickers_decoration_6_icon.png"], ["stickers_decoration_7.png", "stickers_decoration_7_icon.png"], ["stickers_decoration_8.png", "stickers_decoration_8_icon.png"], ["stickers_decoration_9.png", "stickers_decoration_9_icon.png"], ["stickers_decoration_10.png", "stickers_decoration_10_icon.png"], ["stickers_decoration_11.png", "stickers_decoration_11_icon.png"], ["stickers_decoration_12.png", "stickers_decoration_12_icon.png"], ["stickers_decoration_13.png", "stickers_decoration_13_icon.png"], ["stickers_decoration_14.png", "stickers_decoration_14_icon.png"], ["stickers_decoration_15.png", "stickers_decoration_15_icon.png"], ["stickers_decoration_16.png", "stickers_decoration_16_icon.png"]] ================================================ FILE: FotorSDKDemo/assets/stickers_config/Love/Config.json ================================================ [["stickers_love_1.png", "stickers_love_1_icon.png"], ["stickers_love_2.png", "stickers_love_2_icon.png"], ["stickers_love_3.png", "stickers_love_3_icon.png"], ["stickers_love_4.png", "stickers_love_4_icon.png"], ["stickers_love_5.png", "stickers_love_5_icon.png"], ["stickers_love_6.png", "stickers_love_6_icon.png"], ["stickers_love_7.png", "stickers_love_7_icon.png"], ["stickers_love_8.png", "stickers_love_8_icon.png"], ["stickers_love_9.png", "stickers_love_9_icon.png"], ["stickers_love_10.png", "stickers_love_10_icon.png"], ["stickers_love_11.png", "stickers_love_11_icon.png"], ["stickers_love_12.png", "stickers_love_12_icon.png"], ["stickers_love_13.png", "stickers_love_13_icon.png"], ["stickers_love_14.png", "stickers_love_14_icon.png"], ["stickers_love_15.png", "stickers_love_15_icon.png"], ["stickers_love_16.png", "stickers_love_16_icon.png"]] ================================================ FILE: FotorSDKDemo/assets/stickers_config/Party/Config.json ================================================ [["stickers_party_1.png", "stickers_party_1_icon.png"], ["stickers_party_2.png", "stickers_party_2_icon.png"], ["stickers_party_3.png", "stickers_party_3_icon.png"], ["stickers_party_4.png", "stickers_party_4_icon.png"], ["stickers_party_5.png", "stickers_party_5_icon.png"], ["stickers_party_6.png", "stickers_party_6_icon.png"], ["stickers_party_7.png", "stickers_party_7_icon.png"], ["stickers_party_8.png", "stickers_party_8_icon.png"], ["stickers_party_9.png", "stickers_party_9_icon.png"], ["stickers_party_10.png", "stickers_party_10_icon.png"], ["stickers_party_11.png", "stickers_party_11_icon.png"], ["stickers_party_12.png", "stickers_party_12_icon.png"], ["stickers_party_13.png", "stickers_party_13_icon.png"], ["stickers_party_14.png", "stickers_party_14_icon.png"], ["stickers_party_15.png", "stickers_party_15_icon.png"], ["stickers_party_16.png", "stickers_party_16_icon.png"]] ================================================ FILE: FotorSDKDemo/assets/stickers_config/Text/Config.json ================================================ [["stickers_text_1.png", "stickers_text_1_icon.png"], ["stickers_text_2.png", "stickers_text_2_icon.png"], ["stickers_text_3.png", "stickers_text_3_icon.png"], ["stickers_text_4.png", "stickers_text_4_icon.png"], ["stickers_text_5.png", "stickers_text_5_icon.png"], ["stickers_text_6.png", "stickers_text_6_icon.png"], ["stickers_text_7.png", "stickers_text_7_icon.png"]] ================================================ FILE: FotorSDKDemo/bin/AndroidManifest.xml ================================================ ================================================ FILE: FotorSDKDemo/bin/FotorSDKDemo.apk ================================================ [File too large to display: 12.3 MB] ================================================ FILE: FotorSDKDemo/bin/R.txt ================================================ int anim fotor_camera_focus_anim 0x7f040000 int anim fotor_fit_view_fadein_animation 0x7f040001 int anim fotor_fit_view_fadeout_animation 0x7f040002 int anim fotor_footer_bar_in_animation 0x7f040003 int anim fotor_footer_bar_out_animation 0x7f040004 int attr dividerWidth 0x7f010030 int attr entries 0x7f01002f int attr footerDividersEnabled 0x7f010032 int attr fotorCustomSlider_adjustYDistance 0x7f010015 int attr fotorCustomSlider_isShowValue 0x7f010016 int attr fotorCustomSlider_max 0x7f01001b int attr fotorCustomSlider_progress 0x7f01001c int attr fotorCustomSlider_progressDrawable 0x7f01001a int attr fotorCustomSlider_thumb 0x7f010018 int attr fotorCustomSlider_typeface 0x7f010019 int attr fotorCustomSlider_valueBackground 0x7f010017 int attr fotorDefaultEffectSelectorViewStyle 0x7f010011 int attr fotorDefaultHeaderButtonStyle 0x7f010010 int attr fotorDefaultImageViewBackground 0x7f01000e int attr fotorDefaultNavigateBtnStyle 0x7f01000d int attr fotorDefaultOperToolPanelStyle 0x7f01000f int attr fotorDefaultSliderStyle 0x7f01000c int attr fotorDefaultTextButtonStyle 0x7f01000b int attr fotorDefaultTextViewStyle 0x7f01000a int attr fotorDefaultTitleBackButtonStyle 0x7f010012 int attr fotorEffectSelectorView_Color 0x7f010026 int attr fotorFontBold 0x7f010000 int attr fotorFontLight 0x7f010001 int attr fotorHeaderButton_typeface 0x7f010025 int attr fotorMainBottomHeight 0x7f010002 int attr fotorMainFooterBackground 0x7f010006 int attr fotorMainHeaderBackground 0x7f010007 int attr fotorMainHeaderHeight 0x7f010004 int attr fotorMainToolPanelBackground 0x7f010008 int attr fotorMainToolPanelHeight 0x7f010003 int attr fotorNavigationBtnWidth 0x7f010005 int attr fotorNavigationBtn_color_default 0x7f010020 int attr fotorNavigationBtn_color_disabled 0x7f010022 int attr fotorNavigationBtn_color_pressed 0x7f010021 int attr fotorNavigationBtn_isShowPressedBackground 0x7f01001d int attr fotorNavigationBtn_pressed_background 0x7f010023 int attr fotorNavigationBtn_text 0x7f01001e int attr fotorNavigationBtn_typeface 0x7f01001f int attr fotorOperToolPanel_bottomLine_Color 0x7f010024 int attr fotorTextButton_typeface 0x7f010014 int attr fotorTextView_typeface 0x7f010013 int attr fotorTitleBackButton_IconDrawable 0x7f01002a int attr fotorTitleBackButton_Text 0x7f010028 int attr fotorTitleBackButton_TextColor 0x7f010029 int attr fotorTitleBackButton_Textsize 0x7f010027 int attr fotorTitleBackButton_Typeface 0x7f01002b int attr fotorTitleTextSize 0x7f010009 int attr headerDividersEnabled 0x7f010031 int attr measureWithChild 0x7f010035 int attr overScrollFooter 0x7f010034 int attr overScrollHeader 0x7f010033 int attr sephiroth_absHListViewStyle 0x7f01002d int attr sephiroth_listPreferredItemWidth 0x7f01002e int attr sephiroth_listViewStyle 0x7f01002c int attr stackFromRight 0x7f010036 int attr transcriptMode 0x7f010037 int color bottom_button_background_default_color 0x7f06003c int color bottom_button_background_disable_color 0x7f06003e int color bottom_button_background_pressed_color 0x7f06003d int color bottom_button_text_default_color 0x7f060039 int color bottom_button_text_disable_color 0x7f06003b int color bottom_button_text_pressed_color 0x7f06003a int color fotor_feature_adjust_curve_background 0x7f06000d int color fotor_feature_loading_textColor 0x7f06000e int color fotor_feature_stickers_button_pressed 0x7f060013 int color fotor_feature_text_color_button1 0x7f06001b int color fotor_feature_text_color_button10 0x7f060024 int color fotor_feature_text_color_button11 0x7f060025 int color fotor_feature_text_color_button12 0x7f060026 int color fotor_feature_text_color_button13 0x7f060027 int color fotor_feature_text_color_button14 0x7f060028 int color fotor_feature_text_color_button15 0x7f060029 int color fotor_feature_text_color_button16 0x7f06002a int color fotor_feature_text_color_button17 0x7f06002b int color fotor_feature_text_color_button18 0x7f06002c int color fotor_feature_text_color_button19 0x7f06002d int color fotor_feature_text_color_button2 0x7f06001c int color fotor_feature_text_color_button20 0x7f06002e int color fotor_feature_text_color_button21 0x7f06002f int color fotor_feature_text_color_button22 0x7f060030 int color fotor_feature_text_color_button23 0x7f060031 int color fotor_feature_text_color_button24 0x7f060032 int color fotor_feature_text_color_button25 0x7f060033 int color fotor_feature_text_color_button26 0x7f060034 int color fotor_feature_text_color_button27 0x7f060035 int color fotor_feature_text_color_button28 0x7f060036 int color fotor_feature_text_color_button3 0x7f06001d int color fotor_feature_text_color_button4 0x7f06001e int color fotor_feature_text_color_button5 0x7f06001f int color fotor_feature_text_color_button6 0x7f060020 int color fotor_feature_text_color_button7 0x7f060021 int color fotor_feature_text_color_button8 0x7f060022 int color fotor_feature_text_color_button9 0x7f060023 int color fotor_feature_text_option_title_color 0x7f060019 int color fotor_feature_text_panel_background 0x7f060014 int color fotor_feature_text_panel_line_color 0x7f060015 int color fotor_feature_text_shadow_color 0x7f06001a int color fotor_feature_text_texture_border_selected 0x7f060018 int color fotor_feature_text_typeface_default 0x7f060017 int color fotor_feature_text_typeface_pressed 0x7f060016 int color fotor_fx_effect_effects_listview_item_background_default 0x7f06000f int color fotor_fx_effect_effects_listview_item_background_pressed 0x7f060010 int color fotor_fx_effect_effects_listview_item_textColor 0x7f060011 int color fotor_fx_effect_effects_listview_item_text_bakground 0x7f060012 int color fotor_half_transparent 0x7f060001 int color fotor_header_button_text_state 0x7f06003f int color fotor_main_footer_background 0x7f060002 int color fotor_main_header_background 0x7f060008 int color fotor_main_header_button_text_default 0x7f06000b int color fotor_main_header_button_text_pressed 0x7f06000c int color fotor_main_imageview_background 0x7f060007 int color fotor_main_loading_background 0x7f060037 int color fotor_main_toolpanel_background 0x7f060009 int color fotor_main_toolpanel_bottom_line 0x7f06000a int color fotor_navigation_btn_color_default 0x7f060005 int color fotor_navigation_btn_color_disabled 0x7f060006 int color fotor_navigation_btn_color_pressed 0x7f060004 int color fotor_navigation_btn_pressed_background 0x7f060003 int color fotor_text_button_text_state 0x7f060040 int color fotor_title_back_button_text_state 0x7f060041 int color fotor_transparent 0x7f060000 int color photo_editor_button_background_color 0x7f060042 int color photo_editor_button_text_color 0x7f060043 int color title_background 0x7f060038 int dimen activity_horizontal_margin 0x7f080032 int dimen activity_vertical_margin 0x7f080033 int dimen bottom_background_height 0x7f080036 int dimen bottom_button_text_size 0x7f080037 int dimen fotor_border_effect_listview_divider_width 0x7f080031 int dimen fotor_crop_reset_margin_h 0x7f08000f int dimen fotor_curve_btn_textsize 0x7f08000d int dimen fotor_curve_control_panel_btn_spacing 0x7f08000c int dimen fotor_curve_view_max_size 0x7f080030 int dimen fotor_feature_loading_textSize 0x7f08002b int dimen fotor_feature_stickers_button_spacing 0x7f08002a int dimen fotor_feature_stickers_button_width 0x7f080029 int dimen fotor_fx_effect_buttons_margin_right 0x7f080010 int dimen fotor_fx_effect_effects_listview_item_image_width 0x7f080011 int dimen fotor_fx_effect_effects_listview_item_margin 0x7f080013 int dimen fotor_fx_effect_effects_listview_item_textHeight 0x7f080012 int dimen fotor_fx_effect_effects_listview_item_textSize 0x7f080014 int dimen fotor_main_bottom_height 0x7f080000 int dimen fotor_main_header_btn_textsize 0x7f080005 int dimen fotor_main_header_height 0x7f080007 int dimen fotor_main_header_margin 0x7f080008 int dimen fotor_main_header_title_textsize 0x7f080006 int dimen fotor_main_imageview_margin 0x7f08002d int dimen fotor_main_loadding_background_radius 0x7f08002e int dimen fotor_main_loadding_margin 0x7f08002f int dimen fotor_main_loading_textSize 0x7f08002c int dimen fotor_main_minimum_bottom_height 0x7f080004 int dimen fotor_main_navigation_btn_textsize 0x7f080002 int dimen fotor_main_navigation_btn_width 0x7f080001 int dimen fotor_main_tool_panel_height 0x7f080003 int dimen fotor_main_tool_panel_line_size 0x7f080009 int dimen fotor_slider_panel_margin_h 0x7f08000b int dimen fotor_slider_value_margin 0x7f08000a int dimen fotor_text_color_button_size 0x7f080021 int dimen fotor_text_color_button_stroke 0x7f080020 int dimen fotor_text_item_padding 0x7f080019 int dimen fotor_text_keyboard_canvas_spacing 0x7f08001c int dimen fotor_text_option_btn_spacing 0x7f080025 int dimen fotor_text_option_opacity_padding_h 0x7f080028 int dimen fotor_text_option_panel_margin 0x7f080023 int dimen fotor_text_option_panel_spacing 0x7f080024 int dimen fotor_text_option_right_panel_margin_top 0x7f080027 int dimen fotor_text_option_title_textsize 0x7f080026 int dimen fotor_text_shadow_offset_x 0x7f08001a int dimen fotor_text_shadow_offset_y 0x7f08001b int dimen fotor_text_textsize_default 0x7f080015 int dimen fotor_text_textsize_maximum 0x7f080016 int dimen fotor_text_textsize_minimum 0x7f080017 int dimen fotor_text_textsize_step 0x7f080018 int dimen fotor_text_texture_button_size 0x7f080022 int dimen fotor_text_typeface_category_item_width 0x7f08001d int dimen fotor_text_typeface_item_height 0x7f08001e int dimen fotor_text_typeface_item_textsize 0x7f08001f int dimen fotor_tilt_shift_tool_panel_margin_left 0x7f08000e int dimen title_background_height 0x7f080034 int dimen title_text_size 0x7f080035 int drawable fotor_adjust_brightness 0x7f020000 int drawable fotor_adjust_contrast 0x7f020001 int drawable fotor_adjust_curve 0x7f020002 int drawable fotor_adjust_highlight 0x7f020003 int drawable fotor_adjust_rgb 0x7f020004 int drawable fotor_adjust_saturation 0x7f020005 int drawable fotor_adjust_shadow 0x7f020006 int drawable fotor_adjust_sharpen 0x7f020007 int drawable fotor_adjust_temp 0x7f020008 int drawable fotor_adjust_tint 0x7f020009 int drawable fotor_adjust_vignette 0x7f02000a int drawable fotor_advanced_curve_default 0x7f02000b int drawable fotor_advanced_curve_pressed 0x7f02000c int drawable fotor_advanced_highlights_default 0x7f02000d int drawable fotor_advanced_highlights_pressed 0x7f02000e int drawable fotor_advanced_rgb_default 0x7f02000f int drawable fotor_advanced_rgb_pressed 0x7f020010 int drawable fotor_advanced_shadows_default 0x7f020011 int drawable fotor_advanced_shadows_pressed 0x7f020012 int drawable fotor_advanced_temp_default 0x7f020013 int drawable fotor_advanced_temp_pressed 0x7f020014 int drawable fotor_advanced_tint_default 0x7f020015 int drawable fotor_advanced_tint_pressed 0x7f020016 int drawable fotor_advanced_vignette_default 0x7f020017 int drawable fotor_advanced_vignette_pressed 0x7f020018 int drawable fotor_back 0x7f020019 int drawable fotor_back_default 0x7f02001a int drawable fotor_back_pressed 0x7f02001b int drawable fotor_basis_brightness_default 0x7f02001c int drawable fotor_basis_brightness_pressed 0x7f02001d int drawable fotor_basis_contrast_default 0x7f02001e int drawable fotor_basis_contrast_pressed 0x7f02001f int drawable fotor_basis_saturation_default 0x7f020020 int drawable fotor_basis_saturation_pressed 0x7f020021 int drawable fotor_basis_sharpen_default 0x7f020022 int drawable fotor_basis_sharpen_pressed 0x7f020023 int drawable fotor_borders_gallery_default 0x7f020024 int drawable fotor_borders_gallery_pressed 0x7f020025 int drawable fotor_borders_more 0x7f020026 int drawable fotor_borders_more_default 0x7f020027 int drawable fotor_borders_more_pressed 0x7f020028 int drawable fotor_borders_simple_default 0x7f020029 int drawable fotor_borders_simple_pressed 0x7f02002a int drawable fotor_borders_stamp_default 0x7f02002b int drawable fotor_borders_stamp_pressed 0x7f02002c int drawable fotor_borders_styled_default 0x7f02002d int drawable fotor_borders_styled_pressed 0x7f02002e int drawable fotor_camera_focus_indicator 0x7f02002f int drawable fotor_crop_btn_lineh_default 0x7f020030 int drawable fotor_crop_btn_lineh_pressed 0x7f020031 int drawable fotor_crop_btn_linev_default 0x7f020032 int drawable fotor_crop_btn_linev_pressed 0x7f020033 int drawable fotor_crop_btn_point_default 0x7f020034 int drawable fotor_crop_btn_point_pressed 0x7f020035 int drawable fotor_crop_free_default 0x7f020036 int drawable fotor_crop_free_pressed 0x7f020037 int drawable fotor_crop_line_h_button 0x7f020038 int drawable fotor_crop_line_v_button 0x7f020039 int drawable fotor_crop_point_button 0x7f02003a int drawable fotor_crop_ratio_free_button 0x7f02003b int drawable fotor_crop_restor_default 0x7f02003c int drawable fotor_crop_restor_pressed 0x7f02003d int drawable fotor_crop_restor_unavailable 0x7f02003e int drawable fotor_crop_restore_button 0x7f02003f int drawable fotor_curve_btn_round 0x7f020040 int drawable fotor_curve_btn_round_drag 0x7f020041 int drawable fotor_curve_hide_default 0x7f020042 int drawable fotor_curve_hide_pressed 0x7f020043 int drawable fotor_curve_point_button 0x7f020044 int drawable fotor_curve_restore_button 0x7f020045 int drawable fotor_curve_restore_default 0x7f020046 int drawable fotor_curve_restore_pressed 0x7f020047 int drawable fotor_curve_restore_unavailable 0x7f020048 int drawable fotor_curve_show_default 0x7f020049 int drawable fotor_curve_show_pressed 0x7f02004a int drawable fotor_curve_toggle_button 0x7f02004b int drawable fotor_edit_advanced_default 0x7f02004c int drawable fotor_edit_advanced_pressed 0x7f02004d int drawable fotor_edit_basis_default 0x7f02004e int drawable fotor_edit_basis_pressed 0x7f02004f int drawable fotor_edit_borders_default 0x7f020050 int drawable fotor_edit_borders_pressed 0x7f020051 int drawable fotor_edit_crop_default 0x7f020052 int drawable fotor_edit_crop_pressed 0x7f020053 int drawable fotor_edit_draw_default 0x7f020054 int drawable fotor_edit_draw_pressed 0x7f020055 int drawable fotor_edit_effects_default 0x7f020056 int drawable fotor_edit_effects_pressed 0x7f020057 int drawable fotor_edit_enhance_default 0x7f020058 int drawable fotor_edit_enhance_pressed 0x7f020059 int drawable fotor_edit_hdr_default 0x7f02005a int drawable fotor_edit_hdr_pressed 0x7f02005b int drawable fotor_edit_one_menu_logo 0x7f02005c int drawable fotor_edit_redeye_default 0x7f02005d int drawable fotor_edit_redeye_pressed 0x7f02005e int drawable fotor_edit_rotate_default 0x7f02005f int drawable fotor_edit_rotate_pressed 0x7f020060 int drawable fotor_edit_scenes_default 0x7f020061 int drawable fotor_edit_scenes_pressed 0x7f020062 int drawable fotor_edit_stichers_default 0x7f020063 int drawable fotor_edit_stichers_pressed 0x7f020064 int drawable fotor_edit_text_default 0x7f020065 int drawable fotor_edit_text_pressed 0x7f020066 int drawable fotor_edit_tilt_shift_default 0x7f020067 int drawable fotor_edit_tilt_shift_pressed 0x7f020068 int drawable fotor_effect_border_pack_gallery 0x7f020069 int drawable fotor_effect_border_pack_simple 0x7f02006a int drawable fotor_effect_border_pack_stamp 0x7f02006b int drawable fotor_effect_border_pack_styled 0x7f02006c int drawable fotor_effect_favorites 0x7f02006d int drawable fotor_effect_favorites_default 0x7f02006e int drawable fotor_effect_favorites_pressed 0x7f02006f int drawable fotor_effect_fx_pack_analog 0x7f020070 int drawable fotor_effect_fx_pack_art 0x7f020071 int drawable fotor_effect_fx_pack_lomo 0x7f020072 int drawable fotor_effect_fx_pack_oldpicture 0x7f020073 int drawable fotor_effect_fx_pack_retro 0x7f020074 int drawable fotor_effect_fx_pack_vintage 0x7f020075 int drawable fotor_effects_add 0x7f020076 int drawable fotor_effects_add1_default 0x7f020077 int drawable fotor_effects_add2_default 0x7f020078 int drawable fotor_effects_add3_default 0x7f020079 int drawable fotor_effects_add3_pressed 0x7f02007a int drawable fotor_effects_add_default 0x7f02007b int drawable fotor_effects_add_pressed 0x7f02007c int drawable fotor_effects_add_unavailable 0x7f02007d int drawable fotor_effects_analog_default 0x7f02007e int drawable fotor_effects_analog_pressed 0x7f02007f int drawable fotor_effects_art_default 0x7f020080 int drawable fotor_effects_art_pressed 0x7f020081 int drawable fotor_effects_delete_default 0x7f020082 int drawable fotor_effects_delete_pressed 0x7f020083 int drawable fotor_effects_favorites 0x7f020084 int drawable fotor_effects_favorites1_default 0x7f020085 int drawable fotor_effects_favorites2_default 0x7f020086 int drawable fotor_effects_favorites_default 0x7f020087 int drawable fotor_effects_favorites_pressed 0x7f020088 int drawable fotor_effects_lomo_default 0x7f020089 int drawable fotor_effects_lomo_pressed 0x7f02008a int drawable fotor_effects_minus 0x7f02008b int drawable fotor_effects_minus_default 0x7f02008c int drawable fotor_effects_minus_pressed 0x7f02008d int drawable fotor_effects_minus_unavailable 0x7f02008e int drawable fotor_effects_neon_default 0x7f02008f int drawable fotor_effects_neon_pressed 0x7f020090 int drawable fotor_effects_old_picture_default 0x7f020091 int drawable fotor_effects_old_picture_pressed 0x7f020092 int drawable fotor_effects_retro_default 0x7f020093 int drawable fotor_effects_retro_pressed 0x7f020094 int drawable fotor_effects_vintage_default 0x7f020095 int drawable fotor_effects_vintage_pressed 0x7f020096 int drawable fotor_enhance_high 0x7f020097 int drawable fotor_enhance_high_default 0x7f020098 int drawable fotor_enhance_high_pressed 0x7f020099 int drawable fotor_enhance_low 0x7f02009a int drawable fotor_enhance_low_default 0x7f02009b int drawable fotor_enhance_low_pressed 0x7f02009c int drawable fotor_enhance_medium 0x7f02009d int drawable fotor_enhance_medium_default 0x7f02009e int drawable fotor_enhance_medium_pressed 0x7f02009f int drawable fotor_feature_adjust 0x7f0200a0 int drawable fotor_feature_adjust_advance 0x7f0200a1 int drawable fotor_feature_border 0x7f0200a2 int drawable fotor_feature_crop 0x7f0200a3 int drawable fotor_feature_enhance 0x7f0200a4 int drawable fotor_feature_fx_effects 0x7f0200a5 int drawable fotor_feature_rotate 0x7f0200a6 int drawable fotor_feature_scenes 0x7f0200a7 int drawable fotor_feature_stickers 0x7f0200a8 int drawable fotor_feature_text 0x7f0200a9 int drawable fotor_feature_tilt_shift 0x7f0200aa int drawable fotor_fonts_pack_art 0x7f0200ab int drawable fotor_fonts_pack_charm 0x7f0200ac int drawable fotor_fonts_pack_classic 0x7f0200ad int drawable fotor_fonts_pack_happy 0x7f0200ae int drawable fotor_fx_effect_effects_listview_item_background 0x7f0200af int drawable fotor_header_redo_button 0x7f0200b0 int drawable fotor_header_undo_button 0x7f0200b1 int drawable fotor_hlv_overscroll_edge 0x7f0200b2 int drawable fotor_hlv_overscroll_glow 0x7f0200b3 int drawable fotor_main_apply_button 0x7f0200b4 int drawable fotor_main_apply_default 0x7f0200b5 int drawable fotor_main_apply_pressed 0x7f0200b6 int drawable fotor_main_loading_background 0x7f0200b7 int drawable fotor_main_redo_default 0x7f0200b8 int drawable fotor_main_redo_pressed 0x7f0200b9 int drawable fotor_main_redo_unavailable 0x7f0200ba int drawable fotor_main_undo_default 0x7f0200bb int drawable fotor_main_undo_pressed 0x7f0200bc int drawable fotor_main_undo_unavailable 0x7f0200bd int drawable fotor_public_slider_layer_list 0x7f0200be int drawable fotor_public_slider_thumb 0x7f0200bf int drawable fotor_public_slider_thumb_selector 0x7f0200c0 int drawable fotor_public_slider_value_background 0x7f0200c1 int drawable fotor_rotate_fh_button 0x7f0200c2 int drawable fotor_rotate_fh_default 0x7f0200c3 int drawable fotor_rotate_fh_pressed 0x7f0200c4 int drawable fotor_rotate_fv_button 0x7f0200c5 int drawable fotor_rotate_fv_default 0x7f0200c6 int drawable fotor_rotate_fv_pressed 0x7f0200c7 int drawable fotor_rotate_left_button 0x7f0200c8 int drawable fotor_rotate_left_default 0x7f0200c9 int drawable fotor_rotate_left_pressed 0x7f0200ca int drawable fotor_rotate_right_button 0x7f0200cb int drawable fotor_rotate_right_default 0x7f0200cc int drawable fotor_rotate_right_pressed 0x7f0200cd int drawable fotor_scenes_backlit 0x7f0200ce int drawable fotor_scenes_backlit_default 0x7f0200cf int drawable fotor_scenes_backlit_pressed 0x7f0200d0 int drawable fotor_scenes_cloudy 0x7f0200d1 int drawable fotor_scenes_cloudy_default 0x7f0200d2 int drawable fotor_scenes_cloudy_pressed 0x7f0200d3 int drawable fotor_scenes_darken 0x7f0200d4 int drawable fotor_scenes_darken_default 0x7f0200d5 int drawable fotor_scenes_darken_pressed 0x7f0200d6 int drawable fotor_scenes_flash 0x7f0200d7 int drawable fotor_scenes_flash_default 0x7f0200d8 int drawable fotor_scenes_flash_pressed 0x7f0200d9 int drawable fotor_scenes_fluores_default 0x7f0200da int drawable fotor_scenes_fluores_pressed 0x7f0200db int drawable fotor_scenes_fluorescent 0x7f0200dc int drawable fotor_scenes_food 0x7f0200dd int drawable fotor_scenes_food_default 0x7f0200de int drawable fotor_scenes_food_pressed 0x7f0200df int drawable fotor_scenes_landscape 0x7f0200e0 int drawable fotor_scenes_landscape_default 0x7f0200e1 int drawable fotor_scenes_landscape_pressed 0x7f0200e2 int drawable fotor_scenes_night 0x7f0200e3 int drawable fotor_scenes_night_default 0x7f0200e4 int drawable fotor_scenes_night_pressed 0x7f0200e5 int drawable fotor_scenes_original 0x7f0200e6 int drawable fotor_scenes_original_default 0x7f0200e7 int drawable fotor_scenes_original_pressed 0x7f0200e8 int drawable fotor_scenes_portrait 0x7f0200e9 int drawable fotor_scenes_portrait_default 0x7f0200ea int drawable fotor_scenes_portrait_pressed 0x7f0200eb int drawable fotor_scenes_sand_snow 0x7f0200ec int drawable fotor_scenes_seasid_default 0x7f0200ed int drawable fotor_scenes_seasid_pressed 0x7f0200ee int drawable fotor_scenes_shade 0x7f0200ef int drawable fotor_scenes_shade_default 0x7f0200f0 int drawable fotor_scenes_shade_pressed 0x7f0200f1 int drawable fotor_scenes_sunset 0x7f0200f2 int drawable fotor_scenes_sunset_default 0x7f0200f3 int drawable fotor_scenes_sunset_pressed 0x7f0200f4 int drawable fotor_scenes_theatre 0x7f0200f5 int drawable fotor_scenes_theatre_default 0x7f0200f6 int drawable fotor_scenes_theatre_pressed 0x7f0200f7 int drawable fotor_slider_blue 0x7f0200f8 int drawable fotor_slider_blue_layer_list 0x7f0200f9 int drawable fotor_slider_green 0x7f0200fa int drawable fotor_slider_green_layer_list 0x7f0200fb int drawable fotor_slider_public_bg 0x7f0200fc int drawable fotor_slider_public_process 0x7f0200fd int drawable fotor_slider_red 0x7f0200fe int drawable fotor_slider_red_layer_list 0x7f0200ff int drawable fotor_sticker_delete_button 0x7f020100 int drawable fotor_sticker_delete_default 0x7f020101 int drawable fotor_sticker_delete_pressed 0x7f020102 int drawable fotor_sticker_reset_button 0x7f020103 int drawable fotor_sticker_reset_default 0x7f020104 int drawable fotor_sticker_reset_pressed 0x7f020105 int drawable fotor_sticker_zoom_button 0x7f020106 int drawable fotor_sticker_zoom_default 0x7f020107 int drawable fotor_sticker_zoom_pressed 0x7f020108 int drawable fotor_stickers_boom_default 0x7f020109 int drawable fotor_stickers_boom_pressed 0x7f02010a int drawable fotor_stickers_button_background_state 0x7f02010b int drawable fotor_stickers_decoration_default 0x7f02010c int drawable fotor_stickers_decoration_pressed 0x7f02010d int drawable fotor_stickers_love_default 0x7f02010e int drawable fotor_stickers_love_pressed 0x7f02010f int drawable fotor_stickers_pack_boom 0x7f020110 int drawable fotor_stickers_pack_decoration 0x7f020111 int drawable fotor_stickers_pack_love 0x7f020112 int drawable fotor_stickers_pack_party 0x7f020113 int drawable fotor_stickers_pack_text 0x7f020114 int drawable fotor_stickers_party_default 0x7f020115 int drawable fotor_stickers_party_pressed 0x7f020116 int drawable fotor_stickers_text_default 0x7f020117 int drawable fotor_stickers_text_pressed 0x7f020118 int drawable fotor_text_add_button 0x7f020119 int drawable fotor_text_add_default 0x7f02011a int drawable fotor_text_add_pressed 0x7f02011b int drawable fotor_text_add_unavailable 0x7f02011c int drawable fotor_text_align_center_button 0x7f02011d int drawable fotor_text_align_left_button 0x7f02011e int drawable fotor_text_align_right_button 0x7f02011f int drawable fotor_text_bg_default 0x7f020120 int drawable fotor_text_bg_pressed 0x7f020121 int drawable fotor_text_bold_default 0x7f020122 int drawable fotor_text_bold_pressed 0x7f020123 int drawable fotor_text_bold_unavailable 0x7f020124 int drawable fotor_text_center_alignment_default 0x7f020125 int drawable fotor_text_center_alignment_pressed 0x7f020126 int drawable fotor_text_color_button 0x7f020127 int drawable fotor_text_color_color_button 0x7f020128 int drawable fotor_text_color_color_default 0x7f020129 int drawable fotor_text_color_color_pressed 0x7f02012a int drawable fotor_text_color_default 0x7f02012b int drawable fotor_text_color_pressed 0x7f02012c int drawable fotor_text_color_texture_button 0x7f02012d int drawable fotor_text_color_texture_default 0x7f02012e int drawable fotor_text_color_texture_pressed 0x7f02012f int drawable fotor_text_delete_button 0x7f020130 int drawable fotor_text_delete_default 0x7f020131 int drawable fotor_text_delete_pressed 0x7f020132 int drawable fotor_text_done_button 0x7f020133 int drawable fotor_text_done_default 0x7f020134 int drawable fotor_text_done_pressed 0x7f020135 int drawable fotor_text_item_background 0x7f020136 int drawable fotor_text_keyboard_button 0x7f020137 int drawable fotor_text_keyboard_default 0x7f020138 int drawable fotor_text_keyboard_pressed 0x7f020139 int drawable fotor_text_left_alignment_default 0x7f02013a int drawable fotor_text_left_alignment_pressed 0x7f02013b int drawable fotor_text_left_rote_default 0x7f02013c int drawable fotor_text_left_rote_pressed 0x7f02013d int drawable fotor_text_left_shadow_default 0x7f02013e int drawable fotor_text_left_shadow_pressed 0x7f02013f int drawable fotor_text_lock 0x7f020140 int drawable fotor_text_no_shadow_default 0x7f020141 int drawable fotor_text_no_shadow_pressed 0x7f020142 int drawable fotor_text_oblique_default 0x7f020143 int drawable fotor_text_oblique_pressed 0x7f020144 int drawable fotor_text_oblique_unavailable 0x7f020145 int drawable fotor_text_option_button 0x7f020146 int drawable fotor_text_option_default 0x7f020147 int drawable fotor_text_option_pressed 0x7f020148 int drawable fotor_text_right_alignment_default 0x7f020149 int drawable fotor_text_right_alignment_pressed 0x7f02014a int drawable fotor_text_right_rote_default 0x7f02014b int drawable fotor_text_right_rote_pressed 0x7f02014c int drawable fotor_text_right_shadow_default 0x7f02014d int drawable fotor_text_right_shadow_pressed 0x7f02014e int drawable fotor_text_rotation_left_button 0x7f02014f int drawable fotor_text_rotation_right_button 0x7f020150 int drawable fotor_text_shadow_bottom_button 0x7f020151 int drawable fotor_text_shadow_left_button 0x7f020152 int drawable fotor_text_shadow_right_button 0x7f020153 int drawable fotor_text_size_minus_button 0x7f020154 int drawable fotor_text_size_minus_default 0x7f020155 int drawable fotor_text_size_minus_pressed 0x7f020156 int drawable fotor_text_size_plus_button 0x7f020157 int drawable fotor_text_size_plus_default 0x7f020158 int drawable fotor_text_size_plus_pressed 0x7f020159 int drawable fotor_text_style_bold_button 0x7f02015a int drawable fotor_text_style_italic_button 0x7f02015b int drawable fotor_text_texture1 0x7f02015c int drawable fotor_text_texture10 0x7f02015d int drawable fotor_text_texture11 0x7f02015e int drawable fotor_text_texture12 0x7f02015f int drawable fotor_text_texture13 0x7f020160 int drawable fotor_text_texture14 0x7f020161 int drawable fotor_text_texture15 0x7f020162 int drawable fotor_text_texture16 0x7f020163 int drawable fotor_text_texture17 0x7f020164 int drawable fotor_text_texture18 0x7f020165 int drawable fotor_text_texture19 0x7f020166 int drawable fotor_text_texture2 0x7f020167 int drawable fotor_text_texture20 0x7f020168 int drawable fotor_text_texture3 0x7f020169 int drawable fotor_text_texture4 0x7f02016a int drawable fotor_text_texture5 0x7f02016b int drawable fotor_text_texture6 0x7f02016c int drawable fotor_text_texture7 0x7f02016d int drawable fotor_text_texture8 0x7f02016e int drawable fotor_text_texture9 0x7f02016f int drawable fotor_text_typeface_art_default 0x7f020170 int drawable fotor_text_typeface_art_pressed 0x7f020171 int drawable fotor_text_typeface_button 0x7f020172 int drawable fotor_text_typeface_charm_default 0x7f020173 int drawable fotor_text_typeface_charm_pressed 0x7f020174 int drawable fotor_text_typeface_classic_default 0x7f020175 int drawable fotor_text_typeface_classic_pressed 0x7f020176 int drawable fotor_text_typeface_default 0x7f020177 int drawable fotor_text_typeface_happy_default 0x7f020178 int drawable fotor_text_typeface_happy_pressed 0x7f020179 int drawable fotor_text_typeface_pressed 0x7f02017a int drawable fotor_tilt_shift_blur_button 0x7f02017b int drawable fotor_tilt_shift_blur_default 0x7f02017c int drawable fotor_tilt_shift_blur_pressed 0x7f02017d int drawable fotor_tilt_shift_circle_button 0x7f02017e int drawable fotor_tilt_shift_circle_default 0x7f02017f int drawable fotor_tilt_shift_circle_pressed 0x7f020180 int drawable fotor_tilt_shift_ellipse_button 0x7f020181 int drawable fotor_tilt_shift_ellipse_default 0x7f020182 int drawable fotor_tilt_shift_ellipse_pressed 0x7f020183 int drawable fotor_tilt_shift_linear_button 0x7f020184 int drawable fotor_tilt_shift_linear_default 0x7f020185 int drawable fotor_tilt_shift_linear_pressed 0x7f020186 int drawable fotor_tilt_shift_strength_button 0x7f020187 int drawable fotor_tilt_shift_strength_default 0x7f020188 int drawable fotor_tilt_shift_strength_pressed 0x7f020189 int drawable fotor_title_back_btn_icon 0x7f02018a int drawable fotor_title_back_btn_icon_default 0x7f02018b int drawable fotor_title_back_btn_icon_pressed 0x7f02018c int drawable fotor_transparent 0x7f02018d int drawable ic_error 0x7f02018e int drawable ic_launcher 0x7f02018f int drawable icon 0x7f020190 int drawable photo_editor_button_background 0x7f020191 int drawable photo_editor_nophotos 0x7f020192 int id alwaysScroll 0x7f0a0002 int id button2 0x7f0a0009 int id button_gallery 0x7f0a0008 int id disabled 0x7f0a0000 int id fotor_action_settings 0x7f0a0082 int id fotor_adjust_curve_reset_button 0x7f0a0015 int id fotor_adjust_curve_toggle_button 0x7f0a0014 int id fotor_adjust_pan_container 0x7f0a0017 int id fotor_adjust_slider 0x7f0a001b int id fotor_adjust_slider_b 0x7f0a001a int id fotor_adjust_slider_g 0x7f0a0019 int id fotor_adjust_slider_r 0x7f0a0018 int id fotor_adjust_tools_container 0x7f0a0016 int id fotor_camera_captureBtn 0x7f0a0010 int id fotor_camera_focus_indicator 0x7f0a0011 int id fotor_camera_footer_layout 0x7f0a000f int id fotor_camera_header_button 0x7f0a000e int id fotor_camera_header_layout 0x7f0a000d int id fotor_camera_main_layout 0x7f0a000a int id fotor_camera_preview 0x7f0a000c int id fotor_camera_preview_layout 0x7f0a000b int id fotor_content_layer 0x7f0a006f int id fotor_crop_btn_left_bottom 0x7f0a001e int id fotor_crop_btn_left_top 0x7f0a001d int id fotor_crop_btn_right_bottom 0x7f0a0020 int id fotor_crop_btn_right_top 0x7f0a001f int id fotor_crop_buttons_container 0x7f0a001c int id fotor_crop_line_bottom 0x7f0a0022 int id fotor_crop_line_left 0x7f0a0023 int id fotor_crop_line_right 0x7f0a0024 int id fotor_crop_line_top 0x7f0a0021 int id fotor_crop_operation_container 0x7f0a0025 int id fotor_crop_ratio_button 0x7f0a0029 int id fotor_crop_restore 0x7f0a0028 int id fotor_crop_slider 0x7f0a0027 int id fotor_feature_draw_panel_container 0x7f0a0070 int id fotor_feature_title 0x7f0a007d int id fotor_fitscreen_imageview 0x7f0a002f int id fotor_footerContainer 0x7f0a0075 int id fotor_fx_effect_add 0x7f0a003b int id fotor_fx_effect_add_or_delete 0x7f0a003a int id fotor_fx_effect_blend_slider 0x7f0a0035 int id fotor_fx_effect_category_container 0x7f0a002a int id fotor_fx_effect_category_listview 0x7f0a002b int id fotor_fx_effect_category_loading_container 0x7f0a002c int id fotor_fx_effect_category_loading_pb 0x7f0a003e int id fotor_fx_effect_container 0x7f0a002d int id fotor_fx_effect_effects_listview_item_imageview 0x7f0a0031 int id fotor_fx_effect_effects_listview_item_progressbar 0x7f0a0033 int id fotor_fx_effect_effects_listview_item_selector 0x7f0a0034 int id fotor_fx_effect_effects_listview_item_textview 0x7f0a0032 int id fotor_fx_effect_favorites 0x7f0a003d int id fotor_fx_effect_imageview 0x7f0a0030 int id fotor_fx_effect_listview 0x7f0a002e int id fotor_fx_effect_minus 0x7f0a003c int id fotor_fx_effect_superposed_choose_container 0x7f0a0037 int id fotor_fx_effect_superposed_choose_listview 0x7f0a0038 int id fotor_fx_effect_superposed_container 0x7f0a0036 int id fotor_fx_effect_superposed_listview 0x7f0a0039 int id fotor_headerContainer 0x7f0a006e int id fotor_imageView 0x7f0a0071 int id fotor_image_top_layer 0x7f0a0073 int id fotor_lock_event_view 0x7f0a0077 int id fotor_main_apply 0x7f0a0080 int id fotor_main_btn_redo 0x7f0a007f int id fotor_main_btn_undo 0x7f0a007e int id fotor_main_header_text_container 0x7f0a007b int id fotor_main_loading_view 0x7f0a0072 int id fotor_main_title 0x7f0a007c int id fotor_navigation_button 0x7f0a007a int id fotor_operation_tool_background 0x7f0a0026 int id fotor_operation_tool_layer 0x7f0a0074 int id fotor_operations_container 0x7f0a0079 int id fotor_progress 0x7f0a0003 int id fotor_progress_bar 0x7f0a0081 int id fotor_rotate_pan_container 0x7f0a003f int id fotor_scenes_pan_container 0x7f0a0040 int id fotor_screen_top_layer 0x7f0a0076 int id fotor_scroll_linear_layout 0x7f0a0013 int id fotor_scroll_view 0x7f0a0012 int id fotor_sdk_version_label 0x7f0a0005 int id fotor_secondaryProgress 0x7f0a0004 int id fotor_stickers_button 0x7f0a0041 int id fotor_stickers_category_container 0x7f0a0042 int id fotor_stickers_category_listview 0x7f0a0043 int id fotor_stickers_category_loading_container 0x7f0a0044 int id fotor_stickers_stickers_container 0x7f0a0045 int id fotor_stickers_stickers_listview 0x7f0a0046 int id fotor_text_add_button 0x7f0a004a int id fotor_text_align_center_button 0x7f0a005a int id fotor_text_align_left_button 0x7f0a0059 int id fotor_text_align_right_button 0x7f0a005b int id fotor_text_color_button 0x7f0a004f int id fotor_text_color_color_button 0x7f0a0047 int id fotor_text_color_texture_button 0x7f0a0048 int id fotor_text_colors_container 0x7f0a0049 int id fotor_text_done_button 0x7f0a0051 int id fotor_text_keyboard_button 0x7f0a004d int id fotor_text_navigation_panel 0x7f0a004c int id fotor_text_opacity_slider 0x7f0a005f int id fotor_text_operation_container 0x7f0a0052 int id fotor_text_option_button 0x7f0a0050 int id fotor_text_rotation_left_button 0x7f0a0055 int id fotor_text_rotation_right_button 0x7f0a0056 int id fotor_text_shadow_bottom_button 0x7f0a005d int id fotor_text_shadow_left_button 0x7f0a005c int id fotor_text_shadow_right_button 0x7f0a005e int id fotor_text_size_minus_button 0x7f0a0054 int id fotor_text_size_plus_button 0x7f0a0053 int id fotor_text_style_bold_button 0x7f0a0057 int id fotor_text_style_italic_button 0x7f0a0058 int id fotor_text_typeface_button 0x7f0a004e int id fotor_text_typeface_category_btn 0x7f0a0060 int id fotor_text_typeface_category_list 0x7f0a0065 int id fotor_text_typeface_category_lock 0x7f0a0061 int id fotor_text_typeface_imageview 0x7f0a0064 int id fotor_text_typeface_item 0x7f0a0062 int id fotor_text_typeface_list 0x7f0a0066 int id fotor_text_typeface_textview 0x7f0a0063 int id fotor_texts_category_loading_container 0x7f0a004b int id fotor_tilt_shift_circle 0x7f0a0067 int id fotor_tilt_shift_ellipse 0x7f0a0069 int id fotor_tilt_shift_gradient 0x7f0a006a int id fotor_tilt_shift_linear 0x7f0a0068 int id fotor_tilt_shift_slider 0x7f0a006c int id fotor_tilt_shift_strength 0x7f0a006b int id fotor_tools_container 0x7f0a0078 int id fotor_zoom_imageview 0x7f0a006d int id image 0x7f0a0007 int id image_container 0x7f0a0006 int id normal 0x7f0a0001 int integer fotor_anim_medium_duration 0x7f070001 int integer fotor_anim_short_duration 0x7f070000 int integer fotor_default_slider_adjustDistance 0x7f070002 int layout activity_main 0x7f030000 int layout fotor_camera_main 0x7f030001 int layout fotor_default_bottom_layout 0x7f030002 int layout fotor_feature_adjust_operation_curve_controller 0x7f030003 int layout fotor_feature_adjust_operation_panel 0x7f030004 int layout fotor_feature_adjust_operation_rgb_tools 0x7f030005 int layout fotor_feature_adjust_operation_tools 0x7f030006 int layout fotor_feature_border_effect_operation_panel 0x7f030007 int layout fotor_feature_crop_maskview 0x7f030008 int layout fotor_feature_crop_operation_panel 0x7f030009 int layout fotor_feature_crop_operation_tools 0x7f03000a int layout fotor_feature_crop_ratio_item 0x7f03000b int layout fotor_feature_effect_operation_panel 0x7f03000c int layout fotor_feature_enhance_operation_panel 0x7f03000d int layout fotor_feature_fitscreen_draw_panel 0x7f03000e int layout fotor_feature_fx_effect_draw_panel 0x7f03000f int layout fotor_feature_fx_effect_effects_listview_item 0x7f030010 int layout fotor_feature_fx_effect_operation_blend_tools 0x7f030011 int layout fotor_feature_fx_effect_operation_panel 0x7f030012 int layout fotor_feature_fx_effect_operation_superposed_tools 0x7f030013 int layout fotor_feature_fx_effect_operation_tools 0x7f030014 int layout fotor_feature_operation_loading_component 0x7f030015 int layout fotor_feature_rotate_operation_panel 0x7f030016 int layout fotor_feature_scenes_operation_panel 0x7f030017 int layout fotor_feature_stickers_item 0x7f030018 int layout fotor_feature_stickers_operation_panel 0x7f030019 int layout fotor_feature_text_color_panel 0x7f03001a int layout fotor_feature_text_operation_panel 0x7f03001b int layout fotor_feature_text_operation_tools 0x7f03001c int layout fotor_feature_text_option_panel 0x7f03001d int layout fotor_feature_text_typeface_category_item 0x7f03001e int layout fotor_feature_text_typeface_item 0x7f03001f int layout fotor_feature_text_typeface_panel 0x7f030020 int layout fotor_feature_tilt_shift_operation_panel 0x7f030021 int layout fotor_feature_tilt_shift_operation_tools 0x7f030022 int layout fotor_feature_zoom_draw_panel 0x7f030023 int layout fotor_loading_progress_medium 0x7f030024 int layout fotor_main 0x7f030025 int layout fotor_main_footer 0x7f030026 int layout fotor_main_footer_item 0x7f030027 int layout fotor_main_header 0x7f030028 int layout fotor_main_loadding 0x7f030029 int layout fotor_progress_medium 0x7f03002a int menu fotor_camera_menu 0x7f0c0000 int raw basefilter 0x7f050000 int raw optimization 0x7f050001 int raw temporary 0x7f050002 int string action_settings 0x7f090070 int string app_name 0x7f09006f int string fotor_adjust_brightness 0x7f09001f int string fotor_adjust_contrast 0x7f090020 int string fotor_adjust_curve 0x7f090029 int string fotor_adjust_curve_hide 0x7f09002b int string fotor_adjust_curve_reset 0x7f09002c int string fotor_adjust_curve_show 0x7f09002a int string fotor_adjust_highlight 0x7f090025 int string fotor_adjust_rgb 0x7f090028 int string fotor_adjust_saturation 0x7f090021 int string fotor_adjust_shadow 0x7f090024 int string fotor_adjust_sharpen 0x7f090022 int string fotor_adjust_temp 0x7f090026 int string fotor_adjust_tint 0x7f090027 int string fotor_adjust_vignette 0x7f090023 int string fotor_back 0x7f09005a int string fotor_crop_10_8 0x7f090049 int string fotor_crop_16_9 0x7f09004b int string fotor_crop_1_1 0x7f090042 int string fotor_crop_3_4 0x7f090044 int string fotor_crop_4_3 0x7f090043 int string fotor_crop_4_6 0x7f090046 int string fotor_crop_5_7 0x7f090048 int string fotor_crop_6_4 0x7f090045 int string fotor_crop_7_5 0x7f090047 int string fotor_crop_8_10 0x7f09004a int string fotor_crop_9_16 0x7f09004c int string fotor_crop_free 0x7f090040 int string fotor_crop_original 0x7f090041 int string fotor_dialog_alert_message_plugin_update 0x7f090069 int string fotor_dialog_alert_message_save 0x7f09006b int string fotor_dialog_alert_negative_save 0x7f09006c int string fotor_dialog_alert_positive_save 0x7f09006d int string fotor_dialog_alert_title_plugin_update 0x7f09006e int string fotor_dialog_alert_title_save 0x7f09006a int string fotor_effect_border_pack_gallery 0x7f090007 int string fotor_effect_border_pack_simple 0x7f090005 int string fotor_effect_border_pack_styled 0x7f090006 int string fotor_effect_fx_pack_analog 0x7f090000 int string fotor_effect_fx_pack_lomo 0x7f090004 int string fotor_effect_fx_pack_oldpicture 0x7f090001 int string fotor_effect_fx_pack_retro 0x7f090002 int string fotor_effect_fx_pack_vintage 0x7f090003 int string fotor_effect_store 0x7f090068 int string fotor_enhance_high 0x7f090059 int string fotor_enhance_low 0x7f090057 int string fotor_enhance_medium 0x7f090058 int string fotor_favorites 0x7f09005d int string fotor_feature_adjust 0x7f090012 int string fotor_feature_adjust_advance 0x7f090013 int string fotor_feature_border 0x7f090015 int string fotor_feature_crop 0x7f090016 int string fotor_feature_enhance 0x7f090010 int string fotor_feature_fx_effects 0x7f090014 int string fotor_feature_rotate 0x7f090017 int string fotor_feature_scenes 0x7f090011 int string fotor_feature_stickers 0x7f090018 int string fotor_feature_text 0x7f09001a int string fotor_feature_tilt_shift 0x7f090019 int string fotor_font_assets_path 0x7f090056 int string fotor_font_roboto_bold 0x7f090054 int string fotor_font_roboto_bold_name 0x7f090055 int string fotor_font_roboto_light 0x7f090052 int string fotor_font_roboto_light_name 0x7f090053 int string fotor_fonts_pack_charm 0x7f090009 int string fotor_fonts_pack_classic 0x7f090008 int string fotor_loading 0x7f09005b int string fotor_main_apply 0x7f09001c int string fotor_main_cancel 0x7f09001b int string fotor_main_redo 0x7f09001e int string fotor_main_undo 0x7f09001d int string fotor_original 0x7f09005c int string fotor_rotate_fliph 0x7f090030 int string fotor_rotate_flipv 0x7f09002f int string fotor_rotate_left 0x7f09002d int string fotor_rotate_right 0x7f09002e int string fotor_scenes_auto 0x7f090032 int string fotor_scenes_backlit 0x7f090033 int string fotor_scenes_cloudy 0x7f090035 int string fotor_scenes_darken 0x7f090034 int string fotor_scenes_flash 0x7f090039 int string fotor_scenes_fluorescent 0x7f09003a int string fotor_scenes_food 0x7f09003f int string fotor_scenes_landscape 0x7f09003d int string fotor_scenes_night 0x7f090038 int string fotor_scenes_original 0x7f090031 int string fotor_scenes_portrait 0x7f09003b int string fotor_scenes_sand_snow 0x7f09003c int string fotor_scenes_shade 0x7f090036 int string fotor_scenes_sunset 0x7f090037 int string fotor_scenes_theatre 0x7f09003e int string fotor_stickers_abstract 0x7f090066 int string fotor_stickers_boom 0x7f090067 int string fotor_stickers_pack_boom 0x7f09000b int string fotor_stickers_pack_decoration 0x7f09000c int string fotor_stickers_pack_love 0x7f09000d int string fotor_stickers_pack_party 0x7f09000e int string fotor_stickers_pack_text 0x7f09000a int string fotor_text_add_btn 0x7f09005e int string fotor_text_alignment 0x7f090063 int string fotor_text_default_text 0x7f09005f int string fotor_text_opacity 0x7f090065 int string fotor_text_rotation 0x7f090061 int string fotor_text_shadow 0x7f090064 int string fotor_text_style 0x7f090062 int string fotor_text_textsize 0x7f090060 int string fotor_tilt_shift_circle 0x7f09004f int string fotor_tilt_shift_ellipse 0x7f090051 int string fotor_tilt_shift_gradient 0x7f09004d int string fotor_tilt_shift_linear 0x7f090050 int string fotor_tilt_shift_strength 0x7f09004e int string fotor_title_main 0x7f09000f int string hello_world 0x7f090071 int string photo_editor 0x7f090072 int string photo_editor_process 0x7f090074 int string photo_editor_select_image 0x7f090073 int style AppBaseTheme 0x7f0b000b int style AppTheme 0x7f0b000c int style FotorBaseTheme 0x7f0b0009 int style FotorCustomSliderDefault 0x7f0b0001 int style FotorTheme 0x7f0b000a int style FotorWidget 0x7f0b0000 int style FotorWidget_EffectSelectorView 0x7f0b0007 int style FotorWidget_NavigationButton 0x7f0b0002 int style FotorWidget_TextButton 0x7f0b0006 int style FotorWidget_TextView 0x7f0b0005 int style FotorWidget_TitleBackButton 0x7f0b0008 int style fotorHeaderButtonDefault 0x7f0b0004 int style fotorOperToolPanelDefault 0x7f0b0003 int[] styleable AbsHListView { 0x010100fb, 0x010100fc, 0x010100fe, 0x01010101, 0x0101012b, 0x01010231, 0x7f010036, 0x7f010037 } int styleable AbsHListView_android_cacheColorHint 3 int styleable AbsHListView_android_choiceMode 4 int styleable AbsHListView_android_drawSelectorOnTop 1 int styleable AbsHListView_android_listSelector 0 int styleable AbsHListView_android_scrollingCache 2 int styleable AbsHListView_android_smoothScrollbar 5 int styleable AbsHListView_stackFromRight 6 int styleable AbsHListView_transcriptMode 7 int[] styleable FotorCustomSlider { 0x7f010015, 0x7f010016, 0x7f010017, 0x7f010018, 0x7f010019, 0x7f01001a, 0x7f01001b, 0x7f01001c } int styleable FotorCustomSlider_fotorCustomSlider_adjustYDistance 0 int styleable FotorCustomSlider_fotorCustomSlider_isShowValue 1 int styleable FotorCustomSlider_fotorCustomSlider_max 6 int styleable FotorCustomSlider_fotorCustomSlider_progress 7 int styleable FotorCustomSlider_fotorCustomSlider_progressDrawable 5 int styleable FotorCustomSlider_fotorCustomSlider_thumb 3 int styleable FotorCustomSlider_fotorCustomSlider_typeface 4 int styleable FotorCustomSlider_fotorCustomSlider_valueBackground 2 int[] styleable FotorEffectSelectorView { 0x7f010026 } int styleable FotorEffectSelectorView_fotorEffectSelectorView_Color 0 int[] styleable FotorHeaderButton { 0x7f010025 } int styleable FotorHeaderButton_fotorHeaderButton_typeface 0 int[] styleable FotorNavigationButton { 0x7f01001d, 0x7f01001e, 0x7f01001f, 0x7f010020, 0x7f010021, 0x7f010022, 0x7f010023 } int styleable FotorNavigationButton_fotorNavigationBtn_color_default 3 int styleable FotorNavigationButton_fotorNavigationBtn_color_disabled 5 int styleable FotorNavigationButton_fotorNavigationBtn_color_pressed 4 int styleable FotorNavigationButton_fotorNavigationBtn_isShowPressedBackground 0 int styleable FotorNavigationButton_fotorNavigationBtn_pressed_background 6 int styleable FotorNavigationButton_fotorNavigationBtn_text 1 int styleable FotorNavigationButton_fotorNavigationBtn_typeface 2 int[] styleable FotorOperToolPanel { 0x7f010024 } int styleable FotorOperToolPanel_fotorOperToolPanel_bottomLine_Color 0 int[] styleable FotorTextButton { 0x7f010014 } int styleable FotorTextButton_fotorTextButton_typeface 0 int[] styleable FotorTextView { 0x7f010013 } int styleable FotorTextView_fotorTextView_typeface 0 int[] styleable FotorTitleBackButton { 0x7f010027, 0x7f010028, 0x7f010029, 0x7f01002a, 0x7f01002b } int styleable FotorTitleBackButton_fotorTitleBackButton_IconDrawable 3 int styleable FotorTitleBackButton_fotorTitleBackButton_Text 1 int styleable FotorTitleBackButton_fotorTitleBackButton_TextColor 2 int styleable FotorTitleBackButton_fotorTitleBackButton_Textsize 0 int styleable FotorTitleBackButton_fotorTitleBackButton_Typeface 4 int[] styleable HListView { 0x010100b2, 0x01010129, 0x7f010030, 0x7f010031, 0x7f010032, 0x7f010033, 0x7f010034, 0x7f010035 } int styleable HListView_android_divider 1 int styleable HListView_android_entries 0 int styleable HListView_dividerWidth 2 int styleable HListView_footerDividersEnabled 4 int styleable HListView_headerDividersEnabled 3 int styleable HListView_measureWithChild 7 int styleable HListView_overScrollFooter 6 int styleable HListView_overScrollHeader 5 int[] styleable Theme { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006, 0x7f010007, 0x7f010008, 0x7f010009, 0x7f01000a, 0x7f01000b, 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f, 0x7f010010, 0x7f010011, 0x7f010012 } int styleable Theme_fotorDefaultEffectSelectorViewStyle 17 int styleable Theme_fotorDefaultHeaderButtonStyle 16 int styleable Theme_fotorDefaultImageViewBackground 14 int styleable Theme_fotorDefaultNavigateBtnStyle 13 int styleable Theme_fotorDefaultOperToolPanelStyle 15 int styleable Theme_fotorDefaultSliderStyle 12 int styleable Theme_fotorDefaultTextButtonStyle 11 int styleable Theme_fotorDefaultTextViewStyle 10 int styleable Theme_fotorDefaultTitleBackButtonStyle 18 int styleable Theme_fotorFontBold 0 int styleable Theme_fotorFontLight 1 int styleable Theme_fotorMainBottomHeight 2 int styleable Theme_fotorMainFooterBackground 6 int styleable Theme_fotorMainHeaderBackground 7 int styleable Theme_fotorMainHeaderHeight 4 int styleable Theme_fotorMainToolPanelBackground 8 int styleable Theme_fotorMainToolPanelHeight 3 int styleable Theme_fotorNavigationBtnWidth 5 int styleable Theme_fotorTitleTextSize 9 ================================================ FILE: FotorSDKDemo/bin/resources.ap_ ================================================ [File too large to display: 10.5 MB] ================================================ FILE: FotorSDKDemo/gen/com/everimaging/fotorsdk/R.java ================================================ /* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */ package com.everimaging.fotorsdk; public final class R { public static final class anim { public static final int fotor_camera_focus_anim = 0x7f040000; public static final int fotor_fit_view_fadein_animation = 0x7f040001; public static final int fotor_fit_view_fadeout_animation = 0x7f040002; public static final int fotor_footer_bar_in_animation = 0x7f040003; public static final int fotor_footer_bar_out_animation = 0x7f040004; } public static final class attr { public static final int dividerWidth = 0x7f010030; public static final int entries = 0x7f01002f; public static final int footerDividersEnabled = 0x7f010032; public static final int fotorCustomSlider_adjustYDistance = 0x7f010015; public static final int fotorCustomSlider_isShowValue = 0x7f010016; public static final int fotorCustomSlider_max = 0x7f01001b; public static final int fotorCustomSlider_progress = 0x7f01001c; public static final int fotorCustomSlider_progressDrawable = 0x7f01001a; public static final int fotorCustomSlider_thumb = 0x7f010018; public static final int fotorCustomSlider_typeface = 0x7f010019; public static final int fotorCustomSlider_valueBackground = 0x7f010017; public static final int fotorDefaultEffectSelectorViewStyle = 0x7f010011; public static final int fotorDefaultHeaderButtonStyle = 0x7f010010; public static final int fotorDefaultImageViewBackground = 0x7f01000e; public static final int fotorDefaultNavigateBtnStyle = 0x7f01000d; public static final int fotorDefaultOperToolPanelStyle = 0x7f01000f; public static final int fotorDefaultSliderStyle = 0x7f01000c; public static final int fotorDefaultTextButtonStyle = 0x7f01000b; public static final int fotorDefaultTextViewStyle = 0x7f01000a; public static final int fotorDefaultTitleBackButtonStyle = 0x7f010012; public static final int fotorEffectSelectorView_Color = 0x7f010026; public static final int fotorFontBold = 0x7f010000; public static final int fotorFontLight = 0x7f010001; public static final int fotorHeaderButton_typeface = 0x7f010025; public static final int fotorMainBottomHeight = 0x7f010002; public static final int fotorMainFooterBackground = 0x7f010006; public static final int fotorMainHeaderBackground = 0x7f010007; public static final int fotorMainHeaderHeight = 0x7f010004; public static final int fotorMainToolPanelBackground = 0x7f010008; public static final int fotorMainToolPanelHeight = 0x7f010003; public static final int fotorNavigationBtnWidth = 0x7f010005; public static final int fotorNavigationBtn_color_default = 0x7f010020; public static final int fotorNavigationBtn_color_disabled = 0x7f010022; public static final int fotorNavigationBtn_color_pressed = 0x7f010021; public static final int fotorNavigationBtn_isShowPressedBackground = 0x7f01001d; public static final int fotorNavigationBtn_pressed_background = 0x7f010023; public static final int fotorNavigationBtn_text = 0x7f01001e; public static final int fotorNavigationBtn_typeface = 0x7f01001f; public static final int fotorOperToolPanel_bottomLine_Color = 0x7f010024; public static final int fotorTextButton_typeface = 0x7f010014; public static final int fotorTextView_typeface = 0x7f010013; public static final int fotorTitleBackButton_IconDrawable = 0x7f01002a; public static final int fotorTitleBackButton_Text = 0x7f010028; public static final int fotorTitleBackButton_TextColor = 0x7f010029; public static final int fotorTitleBackButton_Textsize = 0x7f010027; public static final int fotorTitleBackButton_Typeface = 0x7f01002b; public static final int fotorTitleTextSize = 0x7f010009; public static final int headerDividersEnabled = 0x7f010031; public static final int measureWithChild = 0x7f010035; public static final int overScrollFooter = 0x7f010034; public static final int overScrollHeader = 0x7f010033; public static final int sephiroth_absHListViewStyle = 0x7f01002d; public static final int sephiroth_listPreferredItemWidth = 0x7f01002e; public static final int sephiroth_listViewStyle = 0x7f01002c; public static final int stackFromRight = 0x7f010036; public static final int transcriptMode = 0x7f010037; } public static final class color { public static final int fotor_feature_adjust_curve_background = 0x7f06000d; public static final int fotor_feature_loading_textColor = 0x7f06000e; public static final int fotor_feature_stickers_button_pressed = 0x7f060013; public static final int fotor_feature_text_color_button1 = 0x7f06001b; public static final int fotor_feature_text_color_button10 = 0x7f060024; public static final int fotor_feature_text_color_button11 = 0x7f060025; public static final int fotor_feature_text_color_button12 = 0x7f060026; public static final int fotor_feature_text_color_button13 = 0x7f060027; public static final int fotor_feature_text_color_button14 = 0x7f060028; public static final int fotor_feature_text_color_button15 = 0x7f060029; public static final int fotor_feature_text_color_button16 = 0x7f06002a; public static final int fotor_feature_text_color_button17 = 0x7f06002b; public static final int fotor_feature_text_color_button18 = 0x7f06002c; public static final int fotor_feature_text_color_button19 = 0x7f06002d; public static final int fotor_feature_text_color_button2 = 0x7f06001c; public static final int fotor_feature_text_color_button20 = 0x7f06002e; public static final int fotor_feature_text_color_button21 = 0x7f06002f; public static final int fotor_feature_text_color_button22 = 0x7f060030; public static final int fotor_feature_text_color_button23 = 0x7f060031; public static final int fotor_feature_text_color_button24 = 0x7f060032; public static final int fotor_feature_text_color_button25 = 0x7f060033; public static final int fotor_feature_text_color_button26 = 0x7f060034; public static final int fotor_feature_text_color_button27 = 0x7f060035; public static final int fotor_feature_text_color_button28 = 0x7f060036; public static final int fotor_feature_text_color_button3 = 0x7f06001d; public static final int fotor_feature_text_color_button4 = 0x7f06001e; public static final int fotor_feature_text_color_button5 = 0x7f06001f; public static final int fotor_feature_text_color_button6 = 0x7f060020; public static final int fotor_feature_text_color_button7 = 0x7f060021; public static final int fotor_feature_text_color_button8 = 0x7f060022; public static final int fotor_feature_text_color_button9 = 0x7f060023; public static final int fotor_feature_text_option_title_color = 0x7f060019; public static final int fotor_feature_text_panel_background = 0x7f060014; public static final int fotor_feature_text_panel_line_color = 0x7f060015; public static final int fotor_feature_text_shadow_color = 0x7f06001a; public static final int fotor_feature_text_texture_border_selected = 0x7f060018; public static final int fotor_feature_text_typeface_default = 0x7f060017; public static final int fotor_feature_text_typeface_pressed = 0x7f060016; public static final int fotor_fx_effect_effects_listview_item_background_default = 0x7f06000f; public static final int fotor_fx_effect_effects_listview_item_background_pressed = 0x7f060010; public static final int fotor_fx_effect_effects_listview_item_textColor = 0x7f060011; public static final int fotor_fx_effect_effects_listview_item_text_bakground = 0x7f060012; public static final int fotor_half_transparent = 0x7f060001; public static final int fotor_header_button_text_state = 0x7f06003f; public static final int fotor_main_footer_background = 0x7f060002; public static final int fotor_main_header_background = 0x7f060008; public static final int fotor_main_header_button_text_default = 0x7f06000b; public static final int fotor_main_header_button_text_pressed = 0x7f06000c; public static final int fotor_main_imageview_background = 0x7f060007; public static final int fotor_main_loading_background = 0x7f060037; public static final int fotor_main_toolpanel_background = 0x7f060009; public static final int fotor_main_toolpanel_bottom_line = 0x7f06000a; public static final int fotor_navigation_btn_color_default = 0x7f060005; public static final int fotor_navigation_btn_color_disabled = 0x7f060006; public static final int fotor_navigation_btn_color_pressed = 0x7f060004; public static final int fotor_navigation_btn_pressed_background = 0x7f060003; public static final int fotor_text_button_text_state = 0x7f060040; public static final int fotor_title_back_button_text_state = 0x7f060041; public static final int fotor_transparent = 0x7f060000; } public static final class dimen { public static final int fotor_border_effect_listview_divider_width = 0x7f080031; public static final int fotor_crop_reset_margin_h = 0x7f08000f; public static final int fotor_curve_btn_textsize = 0x7f08000d; public static final int fotor_curve_control_panel_btn_spacing = 0x7f08000c; public static final int fotor_curve_view_max_size = 0x7f080030; public static final int fotor_feature_loading_textSize = 0x7f08002b; public static final int fotor_feature_stickers_button_spacing = 0x7f08002a; public static final int fotor_feature_stickers_button_width = 0x7f080029; public static final int fotor_fx_effect_buttons_margin_right = 0x7f080010; public static final int fotor_fx_effect_effects_listview_item_image_width = 0x7f080011; public static final int fotor_fx_effect_effects_listview_item_margin = 0x7f080013; public static final int fotor_fx_effect_effects_listview_item_textHeight = 0x7f080012; public static final int fotor_fx_effect_effects_listview_item_textSize = 0x7f080014; public static final int fotor_main_bottom_height = 0x7f080000; public static final int fotor_main_header_btn_textsize = 0x7f080005; public static final int fotor_main_header_height = 0x7f080007; public static final int fotor_main_header_margin = 0x7f080008; public static final int fotor_main_header_title_textsize = 0x7f080006; public static final int fotor_main_imageview_margin = 0x7f08002d; public static final int fotor_main_loadding_background_radius = 0x7f08002e; public static final int fotor_main_loadding_margin = 0x7f08002f; public static final int fotor_main_loading_textSize = 0x7f08002c; public static final int fotor_main_minimum_bottom_height = 0x7f080004; public static final int fotor_main_navigation_btn_textsize = 0x7f080002; public static final int fotor_main_navigation_btn_width = 0x7f080001; public static final int fotor_main_tool_panel_height = 0x7f080003; public static final int fotor_main_tool_panel_line_size = 0x7f080009; public static final int fotor_slider_panel_margin_h = 0x7f08000b; public static final int fotor_slider_value_margin = 0x7f08000a; public static final int fotor_text_color_button_size = 0x7f080021; public static final int fotor_text_color_button_stroke = 0x7f080020; public static final int fotor_text_item_padding = 0x7f080019; public static final int fotor_text_keyboard_canvas_spacing = 0x7f08001c; public static final int fotor_text_option_btn_spacing = 0x7f080025; public static final int fotor_text_option_opacity_padding_h = 0x7f080028; public static final int fotor_text_option_panel_margin = 0x7f080023; public static final int fotor_text_option_panel_spacing = 0x7f080024; public static final int fotor_text_option_right_panel_margin_top = 0x7f080027; public static final int fotor_text_option_title_textsize = 0x7f080026; public static final int fotor_text_shadow_offset_x = 0x7f08001a; public static final int fotor_text_shadow_offset_y = 0x7f08001b; public static final int fotor_text_textsize_default = 0x7f080015; public static final int fotor_text_textsize_maximum = 0x7f080016; public static final int fotor_text_textsize_minimum = 0x7f080017; public static final int fotor_text_textsize_step = 0x7f080018; public static final int fotor_text_texture_button_size = 0x7f080022; public static final int fotor_text_typeface_category_item_width = 0x7f08001d; public static final int fotor_text_typeface_item_height = 0x7f08001e; public static final int fotor_text_typeface_item_textsize = 0x7f08001f; public static final int fotor_tilt_shift_tool_panel_margin_left = 0x7f08000e; } public static final class drawable { public static final int fotor_adjust_brightness = 0x7f020000; public static final int fotor_adjust_contrast = 0x7f020001; public static final int fotor_adjust_curve = 0x7f020002; public static final int fotor_adjust_highlight = 0x7f020003; public static final int fotor_adjust_rgb = 0x7f020004; public static final int fotor_adjust_saturation = 0x7f020005; public static final int fotor_adjust_shadow = 0x7f020006; public static final int fotor_adjust_sharpen = 0x7f020007; public static final int fotor_adjust_temp = 0x7f020008; public static final int fotor_adjust_tint = 0x7f020009; public static final int fotor_adjust_vignette = 0x7f02000a; public static final int fotor_advanced_curve_default = 0x7f02000b; public static final int fotor_advanced_curve_pressed = 0x7f02000c; public static final int fotor_advanced_highlights_default = 0x7f02000d; public static final int fotor_advanced_highlights_pressed = 0x7f02000e; public static final int fotor_advanced_rgb_default = 0x7f02000f; public static final int fotor_advanced_rgb_pressed = 0x7f020010; public static final int fotor_advanced_shadows_default = 0x7f020011; public static final int fotor_advanced_shadows_pressed = 0x7f020012; public static final int fotor_advanced_temp_default = 0x7f020013; public static final int fotor_advanced_temp_pressed = 0x7f020014; public static final int fotor_advanced_tint_default = 0x7f020015; public static final int fotor_advanced_tint_pressed = 0x7f020016; public static final int fotor_advanced_vignette_default = 0x7f020017; public static final int fotor_advanced_vignette_pressed = 0x7f020018; public static final int fotor_back = 0x7f020019; public static final int fotor_back_default = 0x7f02001a; public static final int fotor_back_pressed = 0x7f02001b; public static final int fotor_basis_brightness_default = 0x7f02001c; public static final int fotor_basis_brightness_pressed = 0x7f02001d; public static final int fotor_basis_contrast_default = 0x7f02001e; public static final int fotor_basis_contrast_pressed = 0x7f02001f; public static final int fotor_basis_saturation_default = 0x7f020020; public static final int fotor_basis_saturation_pressed = 0x7f020021; public static final int fotor_basis_sharpen_default = 0x7f020022; public static final int fotor_basis_sharpen_pressed = 0x7f020023; public static final int fotor_borders_gallery_default = 0x7f020024; public static final int fotor_borders_gallery_pressed = 0x7f020025; public static final int fotor_borders_more = 0x7f020026; public static final int fotor_borders_more_default = 0x7f020027; public static final int fotor_borders_more_pressed = 0x7f020028; public static final int fotor_borders_simple_default = 0x7f020029; public static final int fotor_borders_simple_pressed = 0x7f02002a; public static final int fotor_borders_stamp_default = 0x7f02002b; public static final int fotor_borders_stamp_pressed = 0x7f02002c; public static final int fotor_borders_styled_default = 0x7f02002d; public static final int fotor_borders_styled_pressed = 0x7f02002e; public static final int fotor_camera_focus_indicator = 0x7f02002f; public static final int fotor_crop_btn_lineh_default = 0x7f020030; public static final int fotor_crop_btn_lineh_pressed = 0x7f020031; public static final int fotor_crop_btn_linev_default = 0x7f020032; public static final int fotor_crop_btn_linev_pressed = 0x7f020033; public static final int fotor_crop_btn_point_default = 0x7f020034; public static final int fotor_crop_btn_point_pressed = 0x7f020035; public static final int fotor_crop_free_default = 0x7f020036; public static final int fotor_crop_free_pressed = 0x7f020037; public static final int fotor_crop_line_h_button = 0x7f020038; public static final int fotor_crop_line_v_button = 0x7f020039; public static final int fotor_crop_point_button = 0x7f02003a; public static final int fotor_crop_ratio_free_button = 0x7f02003b; public static final int fotor_crop_restor_default = 0x7f02003c; public static final int fotor_crop_restor_pressed = 0x7f02003d; public static final int fotor_crop_restor_unavailable = 0x7f02003e; public static final int fotor_crop_restore_button = 0x7f02003f; public static final int fotor_curve_btn_round = 0x7f020040; public static final int fotor_curve_btn_round_drag = 0x7f020041; public static final int fotor_curve_hide_default = 0x7f020042; public static final int fotor_curve_hide_pressed = 0x7f020043; public static final int fotor_curve_point_button = 0x7f020044; public static final int fotor_curve_restore_button = 0x7f020045; public static final int fotor_curve_restore_default = 0x7f020046; public static final int fotor_curve_restore_pressed = 0x7f020047; public static final int fotor_curve_restore_unavailable = 0x7f020048; public static final int fotor_curve_show_default = 0x7f020049; public static final int fotor_curve_show_pressed = 0x7f02004a; public static final int fotor_curve_toggle_button = 0x7f02004b; public static final int fotor_edit_advanced_default = 0x7f02004c; public static final int fotor_edit_advanced_pressed = 0x7f02004d; public static final int fotor_edit_basis_default = 0x7f02004e; public static final int fotor_edit_basis_pressed = 0x7f02004f; public static final int fotor_edit_borders_default = 0x7f020050; public static final int fotor_edit_borders_pressed = 0x7f020051; public static final int fotor_edit_crop_default = 0x7f020052; public static final int fotor_edit_crop_pressed = 0x7f020053; public static final int fotor_edit_draw_default = 0x7f020054; public static final int fotor_edit_draw_pressed = 0x7f020055; public static final int fotor_edit_effects_default = 0x7f020056; public static final int fotor_edit_effects_pressed = 0x7f020057; public static final int fotor_edit_enhance_default = 0x7f020058; public static final int fotor_edit_enhance_pressed = 0x7f020059; public static final int fotor_edit_hdr_default = 0x7f02005a; public static final int fotor_edit_hdr_pressed = 0x7f02005b; public static final int fotor_edit_one_menu_logo = 0x7f02005c; public static final int fotor_edit_redeye_default = 0x7f02005d; public static final int fotor_edit_redeye_pressed = 0x7f02005e; public static final int fotor_edit_rotate_default = 0x7f02005f; public static final int fotor_edit_rotate_pressed = 0x7f020060; public static final int fotor_edit_scenes_default = 0x7f020061; public static final int fotor_edit_scenes_pressed = 0x7f020062; public static final int fotor_edit_stichers_default = 0x7f020063; public static final int fotor_edit_stichers_pressed = 0x7f020064; public static final int fotor_edit_text_default = 0x7f020065; public static final int fotor_edit_text_pressed = 0x7f020066; public static final int fotor_edit_tilt_shift_default = 0x7f020067; public static final int fotor_edit_tilt_shift_pressed = 0x7f020068; public static final int fotor_effect_border_pack_gallery = 0x7f020069; public static final int fotor_effect_border_pack_simple = 0x7f02006a; public static final int fotor_effect_border_pack_stamp = 0x7f02006b; public static final int fotor_effect_border_pack_styled = 0x7f02006c; public static final int fotor_effect_favorites = 0x7f02006d; public static final int fotor_effect_favorites_default = 0x7f02006e; public static final int fotor_effect_favorites_pressed = 0x7f02006f; public static final int fotor_effect_fx_pack_analog = 0x7f020070; public static final int fotor_effect_fx_pack_art = 0x7f020071; public static final int fotor_effect_fx_pack_lomo = 0x7f020072; public static final int fotor_effect_fx_pack_oldpicture = 0x7f020073; public static final int fotor_effect_fx_pack_retro = 0x7f020074; public static final int fotor_effect_fx_pack_vintage = 0x7f020075; public static final int fotor_effects_add = 0x7f020076; public static final int fotor_effects_add1_default = 0x7f020077; public static final int fotor_effects_add2_default = 0x7f020078; public static final int fotor_effects_add3_default = 0x7f020079; public static final int fotor_effects_add3_pressed = 0x7f02007a; public static final int fotor_effects_add_default = 0x7f02007b; public static final int fotor_effects_add_pressed = 0x7f02007c; public static final int fotor_effects_add_unavailable = 0x7f02007d; public static final int fotor_effects_analog_default = 0x7f02007e; public static final int fotor_effects_analog_pressed = 0x7f02007f; public static final int fotor_effects_art_default = 0x7f020080; public static final int fotor_effects_art_pressed = 0x7f020081; public static final int fotor_effects_delete_default = 0x7f020082; public static final int fotor_effects_delete_pressed = 0x7f020083; public static final int fotor_effects_favorites = 0x7f020084; public static final int fotor_effects_favorites1_default = 0x7f020085; public static final int fotor_effects_favorites2_default = 0x7f020086; public static final int fotor_effects_favorites_default = 0x7f020087; public static final int fotor_effects_favorites_pressed = 0x7f020088; public static final int fotor_effects_lomo_default = 0x7f020089; public static final int fotor_effects_lomo_pressed = 0x7f02008a; public static final int fotor_effects_minus = 0x7f02008b; public static final int fotor_effects_minus_default = 0x7f02008c; public static final int fotor_effects_minus_pressed = 0x7f02008d; public static final int fotor_effects_minus_unavailable = 0x7f02008e; public static final int fotor_effects_neon_default = 0x7f02008f; public static final int fotor_effects_neon_pressed = 0x7f020090; public static final int fotor_effects_old_picture_default = 0x7f020091; public static final int fotor_effects_old_picture_pressed = 0x7f020092; public static final int fotor_effects_retro_default = 0x7f020093; public static final int fotor_effects_retro_pressed = 0x7f020094; public static final int fotor_effects_vintage_default = 0x7f020095; public static final int fotor_effects_vintage_pressed = 0x7f020096; public static final int fotor_enhance_high = 0x7f020097; public static final int fotor_enhance_high_default = 0x7f020098; public static final int fotor_enhance_high_pressed = 0x7f020099; public static final int fotor_enhance_low = 0x7f02009a; public static final int fotor_enhance_low_default = 0x7f02009b; public static final int fotor_enhance_low_pressed = 0x7f02009c; public static final int fotor_enhance_medium = 0x7f02009d; public static final int fotor_enhance_medium_default = 0x7f02009e; public static final int fotor_enhance_medium_pressed = 0x7f02009f; public static final int fotor_feature_adjust = 0x7f0200a0; public static final int fotor_feature_adjust_advance = 0x7f0200a1; public static final int fotor_feature_border = 0x7f0200a2; public static final int fotor_feature_crop = 0x7f0200a3; public static final int fotor_feature_enhance = 0x7f0200a4; public static final int fotor_feature_fx_effects = 0x7f0200a5; public static final int fotor_feature_rotate = 0x7f0200a6; public static final int fotor_feature_scenes = 0x7f0200a7; public static final int fotor_feature_stickers = 0x7f0200a8; public static final int fotor_feature_text = 0x7f0200a9; public static final int fotor_feature_tilt_shift = 0x7f0200aa; public static final int fotor_fonts_pack_art = 0x7f0200ab; public static final int fotor_fonts_pack_charm = 0x7f0200ac; public static final int fotor_fonts_pack_classic = 0x7f0200ad; public static final int fotor_fonts_pack_happy = 0x7f0200ae; public static final int fotor_fx_effect_effects_listview_item_background = 0x7f0200af; public static final int fotor_header_redo_button = 0x7f0200b0; public static final int fotor_header_undo_button = 0x7f0200b1; public static final int fotor_hlv_overscroll_edge = 0x7f0200b2; public static final int fotor_hlv_overscroll_glow = 0x7f0200b3; public static final int fotor_main_apply_button = 0x7f0200b4; public static final int fotor_main_apply_default = 0x7f0200b5; public static final int fotor_main_apply_pressed = 0x7f0200b6; public static final int fotor_main_loading_background = 0x7f0200b7; public static final int fotor_main_redo_default = 0x7f0200b8; public static final int fotor_main_redo_pressed = 0x7f0200b9; public static final int fotor_main_redo_unavailable = 0x7f0200ba; public static final int fotor_main_undo_default = 0x7f0200bb; public static final int fotor_main_undo_pressed = 0x7f0200bc; public static final int fotor_main_undo_unavailable = 0x7f0200bd; public static final int fotor_public_slider_layer_list = 0x7f0200be; public static final int fotor_public_slider_thumb = 0x7f0200bf; public static final int fotor_public_slider_thumb_selector = 0x7f0200c0; public static final int fotor_public_slider_value_background = 0x7f0200c1; public static final int fotor_rotate_fh_button = 0x7f0200c2; public static final int fotor_rotate_fh_default = 0x7f0200c3; public static final int fotor_rotate_fh_pressed = 0x7f0200c4; public static final int fotor_rotate_fv_button = 0x7f0200c5; public static final int fotor_rotate_fv_default = 0x7f0200c6; public static final int fotor_rotate_fv_pressed = 0x7f0200c7; public static final int fotor_rotate_left_button = 0x7f0200c8; public static final int fotor_rotate_left_default = 0x7f0200c9; public static final int fotor_rotate_left_pressed = 0x7f0200ca; public static final int fotor_rotate_right_button = 0x7f0200cb; public static final int fotor_rotate_right_default = 0x7f0200cc; public static final int fotor_rotate_right_pressed = 0x7f0200cd; public static final int fotor_scenes_backlit = 0x7f0200ce; public static final int fotor_scenes_backlit_default = 0x7f0200cf; public static final int fotor_scenes_backlit_pressed = 0x7f0200d0; public static final int fotor_scenes_cloudy = 0x7f0200d1; public static final int fotor_scenes_cloudy_default = 0x7f0200d2; public static final int fotor_scenes_cloudy_pressed = 0x7f0200d3; public static final int fotor_scenes_darken = 0x7f0200d4; public static final int fotor_scenes_darken_default = 0x7f0200d5; public static final int fotor_scenes_darken_pressed = 0x7f0200d6; public static final int fotor_scenes_flash = 0x7f0200d7; public static final int fotor_scenes_flash_default = 0x7f0200d8; public static final int fotor_scenes_flash_pressed = 0x7f0200d9; public static final int fotor_scenes_fluores_default = 0x7f0200da; public static final int fotor_scenes_fluores_pressed = 0x7f0200db; public static final int fotor_scenes_fluorescent = 0x7f0200dc; public static final int fotor_scenes_food = 0x7f0200dd; public static final int fotor_scenes_food_default = 0x7f0200de; public static final int fotor_scenes_food_pressed = 0x7f0200df; public static final int fotor_scenes_landscape = 0x7f0200e0; public static final int fotor_scenes_landscape_default = 0x7f0200e1; public static final int fotor_scenes_landscape_pressed = 0x7f0200e2; public static final int fotor_scenes_night = 0x7f0200e3; public static final int fotor_scenes_night_default = 0x7f0200e4; public static final int fotor_scenes_night_pressed = 0x7f0200e5; public static final int fotor_scenes_original = 0x7f0200e6; public static final int fotor_scenes_original_default = 0x7f0200e7; public static final int fotor_scenes_original_pressed = 0x7f0200e8; public static final int fotor_scenes_portrait = 0x7f0200e9; public static final int fotor_scenes_portrait_default = 0x7f0200ea; public static final int fotor_scenes_portrait_pressed = 0x7f0200eb; public static final int fotor_scenes_sand_snow = 0x7f0200ec; public static final int fotor_scenes_seasid_default = 0x7f0200ed; public static final int fotor_scenes_seasid_pressed = 0x7f0200ee; public static final int fotor_scenes_shade = 0x7f0200ef; public static final int fotor_scenes_shade_default = 0x7f0200f0; public static final int fotor_scenes_shade_pressed = 0x7f0200f1; public static final int fotor_scenes_sunset = 0x7f0200f2; public static final int fotor_scenes_sunset_default = 0x7f0200f3; public static final int fotor_scenes_sunset_pressed = 0x7f0200f4; public static final int fotor_scenes_theatre = 0x7f0200f5; public static final int fotor_scenes_theatre_default = 0x7f0200f6; public static final int fotor_scenes_theatre_pressed = 0x7f0200f7; public static final int fotor_slider_blue = 0x7f0200f8; public static final int fotor_slider_blue_layer_list = 0x7f0200f9; public static final int fotor_slider_green = 0x7f0200fa; public static final int fotor_slider_green_layer_list = 0x7f0200fb; public static final int fotor_slider_public_bg = 0x7f0200fc; public static final int fotor_slider_public_process = 0x7f0200fd; public static final int fotor_slider_red = 0x7f0200fe; public static final int fotor_slider_red_layer_list = 0x7f0200ff; public static final int fotor_sticker_delete_button = 0x7f020100; public static final int fotor_sticker_delete_default = 0x7f020101; public static final int fotor_sticker_delete_pressed = 0x7f020102; public static final int fotor_sticker_reset_button = 0x7f020103; public static final int fotor_sticker_reset_default = 0x7f020104; public static final int fotor_sticker_reset_pressed = 0x7f020105; public static final int fotor_sticker_zoom_button = 0x7f020106; public static final int fotor_sticker_zoom_default = 0x7f020107; public static final int fotor_sticker_zoom_pressed = 0x7f020108; public static final int fotor_stickers_boom_default = 0x7f020109; public static final int fotor_stickers_boom_pressed = 0x7f02010a; public static final int fotor_stickers_button_background_state = 0x7f02010b; public static final int fotor_stickers_decoration_default = 0x7f02010c; public static final int fotor_stickers_decoration_pressed = 0x7f02010d; public static final int fotor_stickers_love_default = 0x7f02010e; public static final int fotor_stickers_love_pressed = 0x7f02010f; public static final int fotor_stickers_pack_boom = 0x7f020110; public static final int fotor_stickers_pack_decoration = 0x7f020111; public static final int fotor_stickers_pack_love = 0x7f020112; public static final int fotor_stickers_pack_party = 0x7f020113; public static final int fotor_stickers_pack_text = 0x7f020114; public static final int fotor_stickers_party_default = 0x7f020115; public static final int fotor_stickers_party_pressed = 0x7f020116; public static final int fotor_stickers_text_default = 0x7f020117; public static final int fotor_stickers_text_pressed = 0x7f020118; public static final int fotor_text_add_button = 0x7f020119; public static final int fotor_text_add_default = 0x7f02011a; public static final int fotor_text_add_pressed = 0x7f02011b; public static final int fotor_text_add_unavailable = 0x7f02011c; public static final int fotor_text_align_center_button = 0x7f02011d; public static final int fotor_text_align_left_button = 0x7f02011e; public static final int fotor_text_align_right_button = 0x7f02011f; public static final int fotor_text_bg_default = 0x7f020120; public static final int fotor_text_bg_pressed = 0x7f020121; public static final int fotor_text_bold_default = 0x7f020122; public static final int fotor_text_bold_pressed = 0x7f020123; public static final int fotor_text_bold_unavailable = 0x7f020124; public static final int fotor_text_center_alignment_default = 0x7f020125; public static final int fotor_text_center_alignment_pressed = 0x7f020126; public static final int fotor_text_color_button = 0x7f020127; public static final int fotor_text_color_color_button = 0x7f020128; public static final int fotor_text_color_color_default = 0x7f020129; public static final int fotor_text_color_color_pressed = 0x7f02012a; public static final int fotor_text_color_default = 0x7f02012b; public static final int fotor_text_color_pressed = 0x7f02012c; public static final int fotor_text_color_texture_button = 0x7f02012d; public static final int fotor_text_color_texture_default = 0x7f02012e; public static final int fotor_text_color_texture_pressed = 0x7f02012f; public static final int fotor_text_delete_button = 0x7f020130; public static final int fotor_text_delete_default = 0x7f020131; public static final int fotor_text_delete_pressed = 0x7f020132; public static final int fotor_text_done_button = 0x7f020133; public static final int fotor_text_done_default = 0x7f020134; public static final int fotor_text_done_pressed = 0x7f020135; public static final int fotor_text_item_background = 0x7f020136; public static final int fotor_text_keyboard_button = 0x7f020137; public static final int fotor_text_keyboard_default = 0x7f020138; public static final int fotor_text_keyboard_pressed = 0x7f020139; public static final int fotor_text_left_alignment_default = 0x7f02013a; public static final int fotor_text_left_alignment_pressed = 0x7f02013b; public static final int fotor_text_left_rote_default = 0x7f02013c; public static final int fotor_text_left_rote_pressed = 0x7f02013d; public static final int fotor_text_left_shadow_default = 0x7f02013e; public static final int fotor_text_left_shadow_pressed = 0x7f02013f; public static final int fotor_text_lock = 0x7f020140; public static final int fotor_text_no_shadow_default = 0x7f020141; public static final int fotor_text_no_shadow_pressed = 0x7f020142; public static final int fotor_text_oblique_default = 0x7f020143; public static final int fotor_text_oblique_pressed = 0x7f020144; public static final int fotor_text_oblique_unavailable = 0x7f020145; public static final int fotor_text_option_button = 0x7f020146; public static final int fotor_text_option_default = 0x7f020147; public static final int fotor_text_option_pressed = 0x7f020148; public static final int fotor_text_right_alignment_default = 0x7f020149; public static final int fotor_text_right_alignment_pressed = 0x7f02014a; public static final int fotor_text_right_rote_default = 0x7f02014b; public static final int fotor_text_right_rote_pressed = 0x7f02014c; public static final int fotor_text_right_shadow_default = 0x7f02014d; public static final int fotor_text_right_shadow_pressed = 0x7f02014e; public static final int fotor_text_rotation_left_button = 0x7f02014f; public static final int fotor_text_rotation_right_button = 0x7f020150; public static final int fotor_text_shadow_bottom_button = 0x7f020151; public static final int fotor_text_shadow_left_button = 0x7f020152; public static final int fotor_text_shadow_right_button = 0x7f020153; public static final int fotor_text_size_minus_button = 0x7f020154; public static final int fotor_text_size_minus_default = 0x7f020155; public static final int fotor_text_size_minus_pressed = 0x7f020156; public static final int fotor_text_size_plus_button = 0x7f020157; public static final int fotor_text_size_plus_default = 0x7f020158; public static final int fotor_text_size_plus_pressed = 0x7f020159; public static final int fotor_text_style_bold_button = 0x7f02015a; public static final int fotor_text_style_italic_button = 0x7f02015b; public static final int fotor_text_texture1 = 0x7f02015c; public static final int fotor_text_texture10 = 0x7f02015d; public static final int fotor_text_texture11 = 0x7f02015e; public static final int fotor_text_texture12 = 0x7f02015f; public static final int fotor_text_texture13 = 0x7f020160; public static final int fotor_text_texture14 = 0x7f020161; public static final int fotor_text_texture15 = 0x7f020162; public static final int fotor_text_texture16 = 0x7f020163; public static final int fotor_text_texture17 = 0x7f020164; public static final int fotor_text_texture18 = 0x7f020165; public static final int fotor_text_texture19 = 0x7f020166; public static final int fotor_text_texture2 = 0x7f020167; public static final int fotor_text_texture20 = 0x7f020168; public static final int fotor_text_texture3 = 0x7f020169; public static final int fotor_text_texture4 = 0x7f02016a; public static final int fotor_text_texture5 = 0x7f02016b; public static final int fotor_text_texture6 = 0x7f02016c; public static final int fotor_text_texture7 = 0x7f02016d; public static final int fotor_text_texture8 = 0x7f02016e; public static final int fotor_text_texture9 = 0x7f02016f; public static final int fotor_text_typeface_art_default = 0x7f020170; public static final int fotor_text_typeface_art_pressed = 0x7f020171; public static final int fotor_text_typeface_button = 0x7f020172; public static final int fotor_text_typeface_charm_default = 0x7f020173; public static final int fotor_text_typeface_charm_pressed = 0x7f020174; public static final int fotor_text_typeface_classic_default = 0x7f020175; public static final int fotor_text_typeface_classic_pressed = 0x7f020176; public static final int fotor_text_typeface_default = 0x7f020177; public static final int fotor_text_typeface_happy_default = 0x7f020178; public static final int fotor_text_typeface_happy_pressed = 0x7f020179; public static final int fotor_text_typeface_pressed = 0x7f02017a; public static final int fotor_tilt_shift_blur_button = 0x7f02017b; public static final int fotor_tilt_shift_blur_default = 0x7f02017c; public static final int fotor_tilt_shift_blur_pressed = 0x7f02017d; public static final int fotor_tilt_shift_circle_button = 0x7f02017e; public static final int fotor_tilt_shift_circle_default = 0x7f02017f; public static final int fotor_tilt_shift_circle_pressed = 0x7f020180; public static final int fotor_tilt_shift_ellipse_button = 0x7f020181; public static final int fotor_tilt_shift_ellipse_default = 0x7f020182; public static final int fotor_tilt_shift_ellipse_pressed = 0x7f020183; public static final int fotor_tilt_shift_linear_button = 0x7f020184; public static final int fotor_tilt_shift_linear_default = 0x7f020185; public static final int fotor_tilt_shift_linear_pressed = 0x7f020186; public static final int fotor_tilt_shift_strength_button = 0x7f020187; public static final int fotor_tilt_shift_strength_default = 0x7f020188; public static final int fotor_tilt_shift_strength_pressed = 0x7f020189; public static final int fotor_title_back_btn_icon = 0x7f02018a; public static final int fotor_title_back_btn_icon_default = 0x7f02018b; public static final int fotor_title_back_btn_icon_pressed = 0x7f02018c; public static final int fotor_transparent = 0x7f02018d; public static final int ic_error = 0x7f02018e; } public static final class id { public static final int alwaysScroll = 0x7f0a0002; public static final int disabled = 0x7f0a0000; public static final int fotor_action_settings = 0x7f0a0082; public static final int fotor_adjust_curve_reset_button = 0x7f0a0015; public static final int fotor_adjust_curve_toggle_button = 0x7f0a0014; public static final int fotor_adjust_pan_container = 0x7f0a0017; public static final int fotor_adjust_slider = 0x7f0a001b; public static final int fotor_adjust_slider_b = 0x7f0a001a; public static final int fotor_adjust_slider_g = 0x7f0a0019; public static final int fotor_adjust_slider_r = 0x7f0a0018; public static final int fotor_adjust_tools_container = 0x7f0a0016; public static final int fotor_camera_captureBtn = 0x7f0a0010; public static final int fotor_camera_focus_indicator = 0x7f0a0011; public static final int fotor_camera_footer_layout = 0x7f0a000f; public static final int fotor_camera_header_button = 0x7f0a000e; public static final int fotor_camera_header_layout = 0x7f0a000d; public static final int fotor_camera_main_layout = 0x7f0a000a; public static final int fotor_camera_preview = 0x7f0a000c; public static final int fotor_camera_preview_layout = 0x7f0a000b; public static final int fotor_content_layer = 0x7f0a006f; public static final int fotor_crop_btn_left_bottom = 0x7f0a001e; public static final int fotor_crop_btn_left_top = 0x7f0a001d; public static final int fotor_crop_btn_right_bottom = 0x7f0a0020; public static final int fotor_crop_btn_right_top = 0x7f0a001f; public static final int fotor_crop_buttons_container = 0x7f0a001c; public static final int fotor_crop_line_bottom = 0x7f0a0022; public static final int fotor_crop_line_left = 0x7f0a0023; public static final int fotor_crop_line_right = 0x7f0a0024; public static final int fotor_crop_line_top = 0x7f0a0021; public static final int fotor_crop_operation_container = 0x7f0a0025; public static final int fotor_crop_ratio_button = 0x7f0a0029; public static final int fotor_crop_restore = 0x7f0a0028; public static final int fotor_crop_slider = 0x7f0a0027; public static final int fotor_feature_draw_panel_container = 0x7f0a0070; public static final int fotor_feature_title = 0x7f0a007d; public static final int fotor_fitscreen_imageview = 0x7f0a002f; public static final int fotor_footerContainer = 0x7f0a0075; public static final int fotor_fx_effect_add = 0x7f0a003b; public static final int fotor_fx_effect_add_or_delete = 0x7f0a003a; public static final int fotor_fx_effect_blend_slider = 0x7f0a0035; public static final int fotor_fx_effect_category_container = 0x7f0a002a; public static final int fotor_fx_effect_category_listview = 0x7f0a002b; public static final int fotor_fx_effect_category_loading_container = 0x7f0a002c; public static final int fotor_fx_effect_category_loading_pb = 0x7f0a003e; public static final int fotor_fx_effect_container = 0x7f0a002d; public static final int fotor_fx_effect_effects_listview_item_imageview = 0x7f0a0031; public static final int fotor_fx_effect_effects_listview_item_progressbar = 0x7f0a0033; public static final int fotor_fx_effect_effects_listview_item_selector = 0x7f0a0034; public static final int fotor_fx_effect_effects_listview_item_textview = 0x7f0a0032; public static final int fotor_fx_effect_favorites = 0x7f0a003d; public static final int fotor_fx_effect_imageview = 0x7f0a0030; public static final int fotor_fx_effect_listview = 0x7f0a002e; public static final int fotor_fx_effect_minus = 0x7f0a003c; public static final int fotor_fx_effect_superposed_choose_container = 0x7f0a0037; public static final int fotor_fx_effect_superposed_choose_listview = 0x7f0a0038; public static final int fotor_fx_effect_superposed_container = 0x7f0a0036; public static final int fotor_fx_effect_superposed_listview = 0x7f0a0039; public static final int fotor_headerContainer = 0x7f0a006e; public static final int fotor_imageView = 0x7f0a0071; public static final int fotor_image_top_layer = 0x7f0a0073; public static final int fotor_lock_event_view = 0x7f0a0077; public static final int fotor_main_apply = 0x7f0a0080; public static final int fotor_main_btn_redo = 0x7f0a007f; public static final int fotor_main_btn_undo = 0x7f0a007e; public static final int fotor_main_header_text_container = 0x7f0a007b; public static final int fotor_main_loading_view = 0x7f0a0072; public static final int fotor_main_title = 0x7f0a007c; public static final int fotor_navigation_button = 0x7f0a007a; public static final int fotor_operation_tool_background = 0x7f0a0026; public static final int fotor_operation_tool_layer = 0x7f0a0074; public static final int fotor_operations_container = 0x7f0a0079; public static final int fotor_progress = 0x7f0a0003; public static final int fotor_progress_bar = 0x7f0a0081; public static final int fotor_rotate_pan_container = 0x7f0a003f; public static final int fotor_scenes_pan_container = 0x7f0a0040; public static final int fotor_screen_top_layer = 0x7f0a0076; public static final int fotor_scroll_linear_layout = 0x7f0a0013; public static final int fotor_scroll_view = 0x7f0a0012; public static final int fotor_secondaryProgress = 0x7f0a0004; public static final int fotor_stickers_button = 0x7f0a0041; public static final int fotor_stickers_category_container = 0x7f0a0042; public static final int fotor_stickers_category_listview = 0x7f0a0043; public static final int fotor_stickers_category_loading_container = 0x7f0a0044; public static final int fotor_stickers_stickers_container = 0x7f0a0045; public static final int fotor_stickers_stickers_listview = 0x7f0a0046; public static final int fotor_text_add_button = 0x7f0a004a; public static final int fotor_text_align_center_button = 0x7f0a005a; public static final int fotor_text_align_left_button = 0x7f0a0059; public static final int fotor_text_align_right_button = 0x7f0a005b; public static final int fotor_text_color_button = 0x7f0a004f; public static final int fotor_text_color_color_button = 0x7f0a0047; public static final int fotor_text_color_texture_button = 0x7f0a0048; public static final int fotor_text_colors_container = 0x7f0a0049; public static final int fotor_text_done_button = 0x7f0a0051; public static final int fotor_text_keyboard_button = 0x7f0a004d; public static final int fotor_text_navigation_panel = 0x7f0a004c; public static final int fotor_text_opacity_slider = 0x7f0a005f; public static final int fotor_text_operation_container = 0x7f0a0052; public static final int fotor_text_option_button = 0x7f0a0050; public static final int fotor_text_rotation_left_button = 0x7f0a0055; public static final int fotor_text_rotation_right_button = 0x7f0a0056; public static final int fotor_text_shadow_bottom_button = 0x7f0a005d; public static final int fotor_text_shadow_left_button = 0x7f0a005c; public static final int fotor_text_shadow_right_button = 0x7f0a005e; public static final int fotor_text_size_minus_button = 0x7f0a0054; public static final int fotor_text_size_plus_button = 0x7f0a0053; public static final int fotor_text_style_bold_button = 0x7f0a0057; public static final int fotor_text_style_italic_button = 0x7f0a0058; public static final int fotor_text_typeface_button = 0x7f0a004e; public static final int fotor_text_typeface_category_btn = 0x7f0a0060; public static final int fotor_text_typeface_category_list = 0x7f0a0065; public static final int fotor_text_typeface_category_lock = 0x7f0a0061; public static final int fotor_text_typeface_imageview = 0x7f0a0064; public static final int fotor_text_typeface_item = 0x7f0a0062; public static final int fotor_text_typeface_list = 0x7f0a0066; public static final int fotor_text_typeface_textview = 0x7f0a0063; public static final int fotor_texts_category_loading_container = 0x7f0a004b; public static final int fotor_tilt_shift_circle = 0x7f0a0067; public static final int fotor_tilt_shift_ellipse = 0x7f0a0069; public static final int fotor_tilt_shift_gradient = 0x7f0a006a; public static final int fotor_tilt_shift_linear = 0x7f0a0068; public static final int fotor_tilt_shift_slider = 0x7f0a006c; public static final int fotor_tilt_shift_strength = 0x7f0a006b; public static final int fotor_tools_container = 0x7f0a0078; public static final int fotor_zoom_imageview = 0x7f0a006d; public static final int normal = 0x7f0a0001; } public static final class integer { public static final int fotor_anim_medium_duration = 0x7f070001; public static final int fotor_anim_short_duration = 0x7f070000; public static final int fotor_default_slider_adjustDistance = 0x7f070002; } public static final class layout { public static final int fotor_camera_main = 0x7f030001; public static final int fotor_default_bottom_layout = 0x7f030002; public static final int fotor_feature_adjust_operation_curve_controller = 0x7f030003; public static final int fotor_feature_adjust_operation_panel = 0x7f030004; public static final int fotor_feature_adjust_operation_rgb_tools = 0x7f030005; public static final int fotor_feature_adjust_operation_tools = 0x7f030006; public static final int fotor_feature_border_effect_operation_panel = 0x7f030007; public static final int fotor_feature_crop_maskview = 0x7f030008; public static final int fotor_feature_crop_operation_panel = 0x7f030009; public static final int fotor_feature_crop_operation_tools = 0x7f03000a; public static final int fotor_feature_crop_ratio_item = 0x7f03000b; public static final int fotor_feature_effect_operation_panel = 0x7f03000c; public static final int fotor_feature_enhance_operation_panel = 0x7f03000d; public static final int fotor_feature_fitscreen_draw_panel = 0x7f03000e; public static final int fotor_feature_fx_effect_draw_panel = 0x7f03000f; public static final int fotor_feature_fx_effect_effects_listview_item = 0x7f030010; public static final int fotor_feature_fx_effect_operation_blend_tools = 0x7f030011; public static final int fotor_feature_fx_effect_operation_panel = 0x7f030012; public static final int fotor_feature_fx_effect_operation_superposed_tools = 0x7f030013; public static final int fotor_feature_fx_effect_operation_tools = 0x7f030014; public static final int fotor_feature_operation_loading_component = 0x7f030015; public static final int fotor_feature_rotate_operation_panel = 0x7f030016; public static final int fotor_feature_scenes_operation_panel = 0x7f030017; public static final int fotor_feature_stickers_item = 0x7f030018; public static final int fotor_feature_stickers_operation_panel = 0x7f030019; public static final int fotor_feature_text_color_panel = 0x7f03001a; public static final int fotor_feature_text_operation_panel = 0x7f03001b; public static final int fotor_feature_text_operation_tools = 0x7f03001c; public static final int fotor_feature_text_option_panel = 0x7f03001d; public static final int fotor_feature_text_typeface_category_item = 0x7f03001e; public static final int fotor_feature_text_typeface_item = 0x7f03001f; public static final int fotor_feature_text_typeface_panel = 0x7f030020; public static final int fotor_feature_tilt_shift_operation_panel = 0x7f030021; public static final int fotor_feature_tilt_shift_operation_tools = 0x7f030022; public static final int fotor_feature_zoom_draw_panel = 0x7f030023; public static final int fotor_loading_progress_medium = 0x7f030024; public static final int fotor_main = 0x7f030025; public static final int fotor_main_footer = 0x7f030026; public static final int fotor_main_footer_item = 0x7f030027; public static final int fotor_main_header = 0x7f030028; public static final int fotor_main_loadding = 0x7f030029; public static final int fotor_progress_medium = 0x7f03002a; } public static final class menu { public static final int fotor_camera_menu = 0x7f0c0000; } public static final class raw { public static final int basefilter = 0x7f050000; public static final int optimization = 0x7f050001; public static final int temporary = 0x7f050002; } public static final class string { public static final int fotor_adjust_brightness = 0x7f09001f; public static final int fotor_adjust_contrast = 0x7f090020; public static final int fotor_adjust_curve = 0x7f090029; public static final int fotor_adjust_curve_hide = 0x7f09002b; public static final int fotor_adjust_curve_reset = 0x7f09002c; public static final int fotor_adjust_curve_show = 0x7f09002a; public static final int fotor_adjust_highlight = 0x7f090025; public static final int fotor_adjust_rgb = 0x7f090028; public static final int fotor_adjust_saturation = 0x7f090021; public static final int fotor_adjust_shadow = 0x7f090024; public static final int fotor_adjust_sharpen = 0x7f090022; public static final int fotor_adjust_temp = 0x7f090026; public static final int fotor_adjust_tint = 0x7f090027; public static final int fotor_adjust_vignette = 0x7f090023; public static final int fotor_back = 0x7f09005a; public static final int fotor_crop_10_8 = 0x7f090049; public static final int fotor_crop_16_9 = 0x7f09004b; public static final int fotor_crop_1_1 = 0x7f090042; public static final int fotor_crop_3_4 = 0x7f090044; public static final int fotor_crop_4_3 = 0x7f090043; public static final int fotor_crop_4_6 = 0x7f090046; public static final int fotor_crop_5_7 = 0x7f090048; public static final int fotor_crop_6_4 = 0x7f090045; public static final int fotor_crop_7_5 = 0x7f090047; public static final int fotor_crop_8_10 = 0x7f09004a; public static final int fotor_crop_9_16 = 0x7f09004c; public static final int fotor_crop_free = 0x7f090040; public static final int fotor_crop_original = 0x7f090041; public static final int fotor_dialog_alert_message_plugin_update = 0x7f090069; public static final int fotor_dialog_alert_message_save = 0x7f09006b; public static final int fotor_dialog_alert_negative_save = 0x7f09006c; public static final int fotor_dialog_alert_positive_save = 0x7f09006d; public static final int fotor_dialog_alert_title_plugin_update = 0x7f09006e; public static final int fotor_dialog_alert_title_save = 0x7f09006a; public static final int fotor_effect_border_pack_gallery = 0x7f090007; public static final int fotor_effect_border_pack_simple = 0x7f090005; public static final int fotor_effect_border_pack_styled = 0x7f090006; public static final int fotor_effect_fx_pack_analog = 0x7f090000; public static final int fotor_effect_fx_pack_lomo = 0x7f090004; public static final int fotor_effect_fx_pack_oldpicture = 0x7f090001; public static final int fotor_effect_fx_pack_retro = 0x7f090002; public static final int fotor_effect_fx_pack_vintage = 0x7f090003; public static final int fotor_effect_store = 0x7f090068; public static final int fotor_enhance_high = 0x7f090059; public static final int fotor_enhance_low = 0x7f090057; public static final int fotor_enhance_medium = 0x7f090058; public static final int fotor_favorites = 0x7f09005d; public static final int fotor_feature_adjust = 0x7f090012; public static final int fotor_feature_adjust_advance = 0x7f090013; public static final int fotor_feature_border = 0x7f090015; public static final int fotor_feature_crop = 0x7f090016; public static final int fotor_feature_enhance = 0x7f090010; public static final int fotor_feature_fx_effects = 0x7f090014; public static final int fotor_feature_rotate = 0x7f090017; public static final int fotor_feature_scenes = 0x7f090011; public static final int fotor_feature_stickers = 0x7f090018; public static final int fotor_feature_text = 0x7f09001a; public static final int fotor_feature_tilt_shift = 0x7f090019; public static final int fotor_font_assets_path = 0x7f090056; public static final int fotor_font_roboto_bold = 0x7f090054; public static final int fotor_font_roboto_bold_name = 0x7f090055; public static final int fotor_font_roboto_light = 0x7f090052; public static final int fotor_font_roboto_light_name = 0x7f090053; public static final int fotor_fonts_pack_charm = 0x7f090009; public static final int fotor_fonts_pack_classic = 0x7f090008; public static final int fotor_loading = 0x7f09005b; public static final int fotor_main_apply = 0x7f09001c; public static final int fotor_main_cancel = 0x7f09001b; public static final int fotor_main_redo = 0x7f09001e; public static final int fotor_main_undo = 0x7f09001d; public static final int fotor_original = 0x7f09005c; public static final int fotor_rotate_fliph = 0x7f090030; public static final int fotor_rotate_flipv = 0x7f09002f; public static final int fotor_rotate_left = 0x7f09002d; public static final int fotor_rotate_right = 0x7f09002e; public static final int fotor_scenes_auto = 0x7f090032; public static final int fotor_scenes_backlit = 0x7f090033; public static final int fotor_scenes_cloudy = 0x7f090035; public static final int fotor_scenes_darken = 0x7f090034; public static final int fotor_scenes_flash = 0x7f090039; public static final int fotor_scenes_fluorescent = 0x7f09003a; public static final int fotor_scenes_food = 0x7f09003f; public static final int fotor_scenes_landscape = 0x7f09003d; public static final int fotor_scenes_night = 0x7f090038; public static final int fotor_scenes_original = 0x7f090031; public static final int fotor_scenes_portrait = 0x7f09003b; public static final int fotor_scenes_sand_snow = 0x7f09003c; public static final int fotor_scenes_shade = 0x7f090036; public static final int fotor_scenes_sunset = 0x7f090037; public static final int fotor_scenes_theatre = 0x7f09003e; public static final int fotor_stickers_abstract = 0x7f090066; public static final int fotor_stickers_boom = 0x7f090067; public static final int fotor_stickers_pack_boom = 0x7f09000b; public static final int fotor_stickers_pack_decoration = 0x7f09000c; public static final int fotor_stickers_pack_love = 0x7f09000d; public static final int fotor_stickers_pack_party = 0x7f09000e; public static final int fotor_stickers_pack_text = 0x7f09000a; public static final int fotor_text_add_btn = 0x7f09005e; public static final int fotor_text_alignment = 0x7f090063; public static final int fotor_text_default_text = 0x7f09005f; public static final int fotor_text_opacity = 0x7f090065; public static final int fotor_text_rotation = 0x7f090061; public static final int fotor_text_shadow = 0x7f090064; public static final int fotor_text_style = 0x7f090062; public static final int fotor_text_textsize = 0x7f090060; public static final int fotor_tilt_shift_circle = 0x7f09004f; public static final int fotor_tilt_shift_ellipse = 0x7f090051; public static final int fotor_tilt_shift_gradient = 0x7f09004d; public static final int fotor_tilt_shift_linear = 0x7f090050; public static final int fotor_tilt_shift_strength = 0x7f09004e; public static final int fotor_title_main = 0x7f09000f; } public static final class style { public static final int FotorBaseTheme = 0x7f0b0009; public static final int FotorCustomSliderDefault = 0x7f0b0001; public static final int FotorTheme = 0x7f0b000a; public static final int FotorWidget = 0x7f0b0000; public static final int FotorWidget_EffectSelectorView = 0x7f0b0007; public static final int FotorWidget_NavigationButton = 0x7f0b0002; public static final int FotorWidget_TextButton = 0x7f0b0006; public static final int FotorWidget_TextView = 0x7f0b0005; public static final int FotorWidget_TitleBackButton = 0x7f0b0008; public static final int fotorHeaderButtonDefault = 0x7f0b0004; public static final int fotorOperToolPanelDefault = 0x7f0b0003; } public static final class styleable { public static final int[] AbsHListView = { 0x010100fb, 0x010100fc, 0x010100fe, 0x01010101, 0x0101012b, 0x01010231, 0x7f010036, 0x7f010037 }; public static final int AbsHListView_android_cacheColorHint = 3; public static final int AbsHListView_android_choiceMode = 4; public static final int AbsHListView_android_drawSelectorOnTop = 1; public static final int AbsHListView_android_listSelector = 0; public static final int AbsHListView_android_scrollingCache = 2; public static final int AbsHListView_android_smoothScrollbar = 5; public static final int AbsHListView_stackFromRight = 6; public static final int AbsHListView_transcriptMode = 7; public static final int[] FotorCustomSlider = { 0x7f010015, 0x7f010016, 0x7f010017, 0x7f010018, 0x7f010019, 0x7f01001a, 0x7f01001b, 0x7f01001c }; public static final int FotorCustomSlider_fotorCustomSlider_adjustYDistance = 0; public static final int FotorCustomSlider_fotorCustomSlider_isShowValue = 1; public static final int FotorCustomSlider_fotorCustomSlider_max = 6; public static final int FotorCustomSlider_fotorCustomSlider_progress = 7; public static final int FotorCustomSlider_fotorCustomSlider_progressDrawable = 5; public static final int FotorCustomSlider_fotorCustomSlider_thumb = 3; public static final int FotorCustomSlider_fotorCustomSlider_typeface = 4; public static final int FotorCustomSlider_fotorCustomSlider_valueBackground = 2; public static final int[] FotorEffectSelectorView = { 0x7f010026 }; public static final int FotorEffectSelectorView_fotorEffectSelectorView_Color = 0; public static final int[] FotorHeaderButton = { 0x7f010025 }; public static final int FotorHeaderButton_fotorHeaderButton_typeface = 0; public static final int[] FotorNavigationButton = { 0x7f01001d, 0x7f01001e, 0x7f01001f, 0x7f010020, 0x7f010021, 0x7f010022, 0x7f010023 }; public static final int FotorNavigationButton_fotorNavigationBtn_color_default = 3; public static final int FotorNavigationButton_fotorNavigationBtn_color_disabled = 5; public static final int FotorNavigationButton_fotorNavigationBtn_color_pressed = 4; public static final int FotorNavigationButton_fotorNavigationBtn_isShowPressedBackground = 0; public static final int FotorNavigationButton_fotorNavigationBtn_pressed_background = 6; public static final int FotorNavigationButton_fotorNavigationBtn_text = 1; public static final int FotorNavigationButton_fotorNavigationBtn_typeface = 2; public static final int[] FotorOperToolPanel = { 0x7f010024 }; public static final int FotorOperToolPanel_fotorOperToolPanel_bottomLine_Color = 0; public static final int[] FotorTextButton = { 0x7f010014 }; public static final int FotorTextButton_fotorTextButton_typeface = 0; public static final int[] FotorTextView = { 0x7f010013 }; public static final int FotorTextView_fotorTextView_typeface = 0; public static final int[] FotorTitleBackButton = { 0x7f010027, 0x7f010028, 0x7f010029, 0x7f01002a, 0x7f01002b }; public static final int FotorTitleBackButton_fotorTitleBackButton_IconDrawable = 3; public static final int FotorTitleBackButton_fotorTitleBackButton_Text = 1; public static final int FotorTitleBackButton_fotorTitleBackButton_TextColor = 2; public static final int FotorTitleBackButton_fotorTitleBackButton_Textsize = 0; public static final int FotorTitleBackButton_fotorTitleBackButton_Typeface = 4; public static final int[] HListView = { 0x010100b2, 0x01010129, 0x7f010030, 0x7f010031, 0x7f010032, 0x7f010033, 0x7f010034, 0x7f010035 }; public static final int HListView_android_divider = 1; public static final int HListView_android_entries = 0; public static final int HListView_dividerWidth = 2; public static final int HListView_footerDividersEnabled = 4; public static final int HListView_headerDividersEnabled = 3; public static final int HListView_measureWithChild = 7; public static final int HListView_overScrollFooter = 6; public static final int HListView_overScrollHeader = 5; public static final int[] Theme = { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006, 0x7f010007, 0x7f010008, 0x7f010009, 0x7f01000a, 0x7f01000b, 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f, 0x7f010010, 0x7f010011, 0x7f010012 }; public static final int Theme_fotorDefaultEffectSelectorViewStyle = 17; public static final int Theme_fotorDefaultHeaderButtonStyle = 16; public static final int Theme_fotorDefaultImageViewBackground = 14; public static final int Theme_fotorDefaultNavigateBtnStyle = 13; public static final int Theme_fotorDefaultOperToolPanelStyle = 15; public static final int Theme_fotorDefaultSliderStyle = 12; public static final int Theme_fotorDefaultTextButtonStyle = 11; public static final int Theme_fotorDefaultTextViewStyle = 10; public static final int Theme_fotorDefaultTitleBackButtonStyle = 18; public static final int Theme_fotorFontBold = 0; public static final int Theme_fotorFontLight = 1; public static final int Theme_fotorMainBottomHeight = 2; public static final int Theme_fotorMainFooterBackground = 6; public static final int Theme_fotorMainHeaderBackground = 7; public static final int Theme_fotorMainHeaderHeight = 4; public static final int Theme_fotorMainToolPanelBackground = 8; public static final int Theme_fotorMainToolPanelHeight = 3; public static final int Theme_fotorNavigationBtnWidth = 5; public static final int Theme_fotorTitleTextSize = 9; } } ================================================ FILE: FotorSDKDemo/gen/com/example/fotorsdkdemo/BuildConfig.java ================================================ /** Automatically generated file. DO NOT MODIFY */ package com.example.fotorsdkdemo; public final class BuildConfig { public final static boolean DEBUG = true; } ================================================ FILE: FotorSDKDemo/gen/com/example/fotorsdkdemo/R.java ================================================ /* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */ package com.example.fotorsdkdemo; public final class R { public static final class anim { public static final int fotor_camera_focus_anim=0x7f040000; public static final int fotor_fit_view_fadein_animation=0x7f040001; public static final int fotor_fit_view_fadeout_animation=0x7f040002; public static final int fotor_footer_bar_in_animation=0x7f040003; public static final int fotor_footer_bar_out_animation=0x7f040004; } public static final class attr { /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int dividerWidth=0x7f010030; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int entries=0x7f01002f; /**

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int footerDividersEnabled=0x7f010032; /**

Must be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorCustomSlider_adjustYDistance=0x7f010015; /**

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorCustomSlider_isShowValue=0x7f010016; /**

Must be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorCustomSlider_max=0x7f01001b; /**

Must be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorCustomSlider_progress=0x7f01001c; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorCustomSlider_progressDrawable=0x7f01001a; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorCustomSlider_thumb=0x7f010018; /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorCustomSlider_typeface=0x7f010019; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorCustomSlider_valueBackground=0x7f010017; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorDefaultEffectSelectorViewStyle=0x7f010011; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorDefaultHeaderButtonStyle=0x7f010010; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorDefaultImageViewBackground=0x7f01000e; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorDefaultNavigateBtnStyle=0x7f01000d; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorDefaultOperToolPanelStyle=0x7f01000f; /** default slider adjustDistance

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorDefaultSliderStyle=0x7f01000c; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorDefaultTextButtonStyle=0x7f01000b; /** default text style

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorDefaultTextViewStyle=0x7f01000a; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorDefaultTitleBackButtonStyle=0x7f010012; /**

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorEffectSelectorView_Color=0x7f010026; /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorFontBold=0x7f010000; /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorFontLight=0x7f010001; /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorHeaderButton_typeface=0x7f010025; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorMainBottomHeight=0x7f010002; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorMainFooterBackground=0x7f010006; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorMainHeaderBackground=0x7f010007; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorMainHeaderHeight=0x7f010004; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorMainToolPanelBackground=0x7f010008; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorMainToolPanelHeight=0x7f010003; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorNavigationBtnWidth=0x7f010005; /**

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorNavigationBtn_color_default=0x7f010020; /**

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorNavigationBtn_color_disabled=0x7f010022; /**

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorNavigationBtn_color_pressed=0x7f010021; /**

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorNavigationBtn_isShowPressedBackground=0x7f01001d; /**

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorNavigationBtn_pressed_background=0x7f010023; /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorNavigationBtn_text=0x7f01001e; /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorNavigationBtn_typeface=0x7f01001f; /**

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorOperToolPanel_bottomLine_Color=0x7f010024; /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorTextButton_typeface=0x7f010014; /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorTextView_typeface=0x7f010013; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorTitleBackButton_IconDrawable=0x7f01002a; /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorTitleBackButton_Text=0x7f010028; /**

May be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb". */ public static final int fotorTitleBackButton_TextColor=0x7f010029; /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorTitleBackButton_Textsize=0x7f010027; /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int fotorTitleBackButton_Typeface=0x7f01002b; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int fotorTitleTextSize=0x7f010009; /**

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int headerDividersEnabled=0x7f010031; /** When "wrap_content" is used as value of the layout_height property. Pass the position, inside the adapter, of the view being used to measure the view or '-1' to use the default behavior ( default is -1 )

Must be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int measureWithChild=0x7f010035; /**

May be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb". */ public static final int overScrollFooter=0x7f010034; /**

May be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb". */ public static final int overScrollHeader=0x7f010033; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int sephiroth_absHListViewStyle=0x7f01002d; /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int sephiroth_listPreferredItemWidth=0x7f01002e; /**

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". */ public static final int sephiroth_listViewStyle=0x7f01002c; /**

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. */ public static final int stackFromRight=0x7f010036; /**

Must be one of the following constant values.

ConstantValueDescription
disabled0
normal1
alwaysScroll2
*/ public static final int transcriptMode=0x7f010037; } public static final class color { public static final int bottom_button_background_default_color=0x7f06003c; public static final int bottom_button_background_disable_color=0x7f06003e; public static final int bottom_button_background_pressed_color=0x7f06003d; public static final int bottom_button_text_default_color=0x7f060039; public static final int bottom_button_text_disable_color=0x7f06003b; public static final int bottom_button_text_pressed_color=0x7f06003a; public static final int fotor_feature_adjust_curve_background=0x7f06000d; public static final int fotor_feature_loading_textColor=0x7f06000e; public static final int fotor_feature_stickers_button_pressed=0x7f060013; public static final int fotor_feature_text_color_button1=0x7f06001b; public static final int fotor_feature_text_color_button10=0x7f060024; public static final int fotor_feature_text_color_button11=0x7f060025; public static final int fotor_feature_text_color_button12=0x7f060026; public static final int fotor_feature_text_color_button13=0x7f060027; public static final int fotor_feature_text_color_button14=0x7f060028; public static final int fotor_feature_text_color_button15=0x7f060029; public static final int fotor_feature_text_color_button16=0x7f06002a; public static final int fotor_feature_text_color_button17=0x7f06002b; public static final int fotor_feature_text_color_button18=0x7f06002c; public static final int fotor_feature_text_color_button19=0x7f06002d; public static final int fotor_feature_text_color_button2=0x7f06001c; public static final int fotor_feature_text_color_button20=0x7f06002e; public static final int fotor_feature_text_color_button21=0x7f06002f; public static final int fotor_feature_text_color_button22=0x7f060030; public static final int fotor_feature_text_color_button23=0x7f060031; public static final int fotor_feature_text_color_button24=0x7f060032; public static final int fotor_feature_text_color_button25=0x7f060033; public static final int fotor_feature_text_color_button26=0x7f060034; public static final int fotor_feature_text_color_button27=0x7f060035; public static final int fotor_feature_text_color_button28=0x7f060036; public static final int fotor_feature_text_color_button3=0x7f06001d; public static final int fotor_feature_text_color_button4=0x7f06001e; public static final int fotor_feature_text_color_button5=0x7f06001f; public static final int fotor_feature_text_color_button6=0x7f060020; public static final int fotor_feature_text_color_button7=0x7f060021; public static final int fotor_feature_text_color_button8=0x7f060022; public static final int fotor_feature_text_color_button9=0x7f060023; public static final int fotor_feature_text_option_title_color=0x7f060019; public static final int fotor_feature_text_panel_background=0x7f060014; public static final int fotor_feature_text_panel_line_color=0x7f060015; public static final int fotor_feature_text_shadow_color=0x7f06001a; public static final int fotor_feature_text_texture_border_selected=0x7f060018; public static final int fotor_feature_text_typeface_default=0x7f060017; public static final int fotor_feature_text_typeface_pressed=0x7f060016; public static final int fotor_fx_effect_effects_listview_item_background_default=0x7f06000f; public static final int fotor_fx_effect_effects_listview_item_background_pressed=0x7f060010; public static final int fotor_fx_effect_effects_listview_item_textColor=0x7f060011; public static final int fotor_fx_effect_effects_listview_item_text_bakground=0x7f060012; public static final int fotor_half_transparent=0x7f060001; public static final int fotor_header_button_text_state=0x7f06003f; public static final int fotor_main_footer_background=0x7f060002; public static final int fotor_main_header_background=0x7f060008; public static final int fotor_main_header_button_text_default=0x7f06000b; public static final int fotor_main_header_button_text_pressed=0x7f06000c; public static final int fotor_main_imageview_background=0x7f060007; public static final int fotor_main_loading_background=0x7f060037; public static final int fotor_main_toolpanel_background=0x7f060009; public static final int fotor_main_toolpanel_bottom_line=0x7f06000a; public static final int fotor_navigation_btn_color_default=0x7f060005; public static final int fotor_navigation_btn_color_disabled=0x7f060006; public static final int fotor_navigation_btn_color_pressed=0x7f060004; public static final int fotor_navigation_btn_pressed_background=0x7f060003; public static final int fotor_text_button_text_state=0x7f060040; public static final int fotor_title_back_button_text_state=0x7f060041; public static final int fotor_transparent=0x7f060000; public static final int photo_editor_button_background_color=0x7f060042; public static final int photo_editor_button_text_color=0x7f060043; public static final int title_background=0x7f060038; } public static final class dimen { /** Default screen margins, per the Android Design guidelines. Customize dimensions originally defined in res/values/dimens.xml (such as screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here. */ public static final int activity_horizontal_margin=0x7f080032; public static final int activity_vertical_margin=0x7f080033; public static final int bottom_background_height=0x7f080036; public static final int bottom_button_text_size=0x7f080037; public static final int fotor_border_effect_listview_divider_width=0x7f080031; public static final int fotor_crop_reset_margin_h=0x7f08000f; public static final int fotor_curve_btn_textsize=0x7f08000d; public static final int fotor_curve_control_panel_btn_spacing=0x7f08000c; public static final int fotor_curve_view_max_size=0x7f080030; public static final int fotor_feature_loading_textSize=0x7f08002b; public static final int fotor_feature_stickers_button_spacing=0x7f08002a; public static final int fotor_feature_stickers_button_width=0x7f080029; public static final int fotor_fx_effect_buttons_margin_right=0x7f080010; public static final int fotor_fx_effect_effects_listview_item_image_width=0x7f080011; public static final int fotor_fx_effect_effects_listview_item_margin=0x7f080013; public static final int fotor_fx_effect_effects_listview_item_textHeight=0x7f080012; public static final int fotor_fx_effect_effects_listview_item_textSize=0x7f080014; public static final int fotor_main_bottom_height=0x7f080000; public static final int fotor_main_header_btn_textsize=0x7f080005; public static final int fotor_main_header_height=0x7f080007; public static final int fotor_main_header_margin=0x7f080008; public static final int fotor_main_header_title_textsize=0x7f080006; public static final int fotor_main_imageview_margin=0x7f08002d; public static final int fotor_main_loadding_background_radius=0x7f08002e; public static final int fotor_main_loadding_margin=0x7f08002f; public static final int fotor_main_loading_textSize=0x7f08002c; public static final int fotor_main_minimum_bottom_height=0x7f080004; public static final int fotor_main_navigation_btn_textsize=0x7f080002; public static final int fotor_main_navigation_btn_width=0x7f080001; public static final int fotor_main_tool_panel_height=0x7f080003; public static final int fotor_main_tool_panel_line_size=0x7f080009; public static final int fotor_slider_panel_margin_h=0x7f08000b; public static final int fotor_slider_value_margin=0x7f08000a; public static final int fotor_text_color_button_size=0x7f080021; public static final int fotor_text_color_button_stroke=0x7f080020; public static final int fotor_text_item_padding=0x7f080019; public static final int fotor_text_keyboard_canvas_spacing=0x7f08001c; public static final int fotor_text_option_btn_spacing=0x7f080025; public static final int fotor_text_option_opacity_padding_h=0x7f080028; public static final int fotor_text_option_panel_margin=0x7f080023; public static final int fotor_text_option_panel_spacing=0x7f080024; public static final int fotor_text_option_right_panel_margin_top=0x7f080027; public static final int fotor_text_option_title_textsize=0x7f080026; public static final int fotor_text_shadow_offset_x=0x7f08001a; public static final int fotor_text_shadow_offset_y=0x7f08001b; public static final int fotor_text_textsize_default=0x7f080015; public static final int fotor_text_textsize_maximum=0x7f080016; public static final int fotor_text_textsize_minimum=0x7f080017; public static final int fotor_text_textsize_step=0x7f080018; public static final int fotor_text_texture_button_size=0x7f080022; public static final int fotor_text_typeface_category_item_width=0x7f08001d; public static final int fotor_text_typeface_item_height=0x7f08001e; public static final int fotor_text_typeface_item_textsize=0x7f08001f; public static final int fotor_tilt_shift_tool_panel_margin_left=0x7f08000e; public static final int title_background_height=0x7f080034; public static final int title_text_size=0x7f080035; } public static final class drawable { public static final int fotor_adjust_brightness=0x7f020000; public static final int fotor_adjust_contrast=0x7f020001; public static final int fotor_adjust_curve=0x7f020002; public static final int fotor_adjust_highlight=0x7f020003; public static final int fotor_adjust_rgb=0x7f020004; public static final int fotor_adjust_saturation=0x7f020005; public static final int fotor_adjust_shadow=0x7f020006; public static final int fotor_adjust_sharpen=0x7f020007; public static final int fotor_adjust_temp=0x7f020008; public static final int fotor_adjust_tint=0x7f020009; public static final int fotor_adjust_vignette=0x7f02000a; public static final int fotor_advanced_curve_default=0x7f02000b; public static final int fotor_advanced_curve_pressed=0x7f02000c; public static final int fotor_advanced_highlights_default=0x7f02000d; public static final int fotor_advanced_highlights_pressed=0x7f02000e; public static final int fotor_advanced_rgb_default=0x7f02000f; public static final int fotor_advanced_rgb_pressed=0x7f020010; public static final int fotor_advanced_shadows_default=0x7f020011; public static final int fotor_advanced_shadows_pressed=0x7f020012; public static final int fotor_advanced_temp_default=0x7f020013; public static final int fotor_advanced_temp_pressed=0x7f020014; public static final int fotor_advanced_tint_default=0x7f020015; public static final int fotor_advanced_tint_pressed=0x7f020016; public static final int fotor_advanced_vignette_default=0x7f020017; public static final int fotor_advanced_vignette_pressed=0x7f020018; public static final int fotor_back=0x7f020019; public static final int fotor_back_default=0x7f02001a; public static final int fotor_back_pressed=0x7f02001b; public static final int fotor_basis_brightness_default=0x7f02001c; public static final int fotor_basis_brightness_pressed=0x7f02001d; public static final int fotor_basis_contrast_default=0x7f02001e; public static final int fotor_basis_contrast_pressed=0x7f02001f; public static final int fotor_basis_saturation_default=0x7f020020; public static final int fotor_basis_saturation_pressed=0x7f020021; public static final int fotor_basis_sharpen_default=0x7f020022; public static final int fotor_basis_sharpen_pressed=0x7f020023; public static final int fotor_borders_gallery_default=0x7f020024; public static final int fotor_borders_gallery_pressed=0x7f020025; public static final int fotor_borders_more=0x7f020026; public static final int fotor_borders_more_default=0x7f020027; public static final int fotor_borders_more_pressed=0x7f020028; public static final int fotor_borders_simple_default=0x7f020029; public static final int fotor_borders_simple_pressed=0x7f02002a; public static final int fotor_borders_stamp_default=0x7f02002b; public static final int fotor_borders_stamp_pressed=0x7f02002c; public static final int fotor_borders_styled_default=0x7f02002d; public static final int fotor_borders_styled_pressed=0x7f02002e; public static final int fotor_camera_focus_indicator=0x7f02002f; public static final int fotor_crop_btn_lineh_default=0x7f020030; public static final int fotor_crop_btn_lineh_pressed=0x7f020031; public static final int fotor_crop_btn_linev_default=0x7f020032; public static final int fotor_crop_btn_linev_pressed=0x7f020033; public static final int fotor_crop_btn_point_default=0x7f020034; public static final int fotor_crop_btn_point_pressed=0x7f020035; public static final int fotor_crop_free_default=0x7f020036; public static final int fotor_crop_free_pressed=0x7f020037; public static final int fotor_crop_line_h_button=0x7f020038; public static final int fotor_crop_line_v_button=0x7f020039; public static final int fotor_crop_point_button=0x7f02003a; public static final int fotor_crop_ratio_free_button=0x7f02003b; public static final int fotor_crop_restor_default=0x7f02003c; public static final int fotor_crop_restor_pressed=0x7f02003d; public static final int fotor_crop_restor_unavailable=0x7f02003e; public static final int fotor_crop_restore_button=0x7f02003f; public static final int fotor_curve_btn_round=0x7f020040; public static final int fotor_curve_btn_round_drag=0x7f020041; public static final int fotor_curve_hide_default=0x7f020042; public static final int fotor_curve_hide_pressed=0x7f020043; public static final int fotor_curve_point_button=0x7f020044; public static final int fotor_curve_restore_button=0x7f020045; public static final int fotor_curve_restore_default=0x7f020046; public static final int fotor_curve_restore_pressed=0x7f020047; public static final int fotor_curve_restore_unavailable=0x7f020048; public static final int fotor_curve_show_default=0x7f020049; public static final int fotor_curve_show_pressed=0x7f02004a; public static final int fotor_curve_toggle_button=0x7f02004b; public static final int fotor_edit_advanced_default=0x7f02004c; public static final int fotor_edit_advanced_pressed=0x7f02004d; public static final int fotor_edit_basis_default=0x7f02004e; public static final int fotor_edit_basis_pressed=0x7f02004f; public static final int fotor_edit_borders_default=0x7f020050; public static final int fotor_edit_borders_pressed=0x7f020051; public static final int fotor_edit_crop_default=0x7f020052; public static final int fotor_edit_crop_pressed=0x7f020053; public static final int fotor_edit_draw_default=0x7f020054; public static final int fotor_edit_draw_pressed=0x7f020055; public static final int fotor_edit_effects_default=0x7f020056; public static final int fotor_edit_effects_pressed=0x7f020057; public static final int fotor_edit_enhance_default=0x7f020058; public static final int fotor_edit_enhance_pressed=0x7f020059; public static final int fotor_edit_hdr_default=0x7f02005a; public static final int fotor_edit_hdr_pressed=0x7f02005b; public static final int fotor_edit_one_menu_logo=0x7f02005c; public static final int fotor_edit_redeye_default=0x7f02005d; public static final int fotor_edit_redeye_pressed=0x7f02005e; public static final int fotor_edit_rotate_default=0x7f02005f; public static final int fotor_edit_rotate_pressed=0x7f020060; public static final int fotor_edit_scenes_default=0x7f020061; public static final int fotor_edit_scenes_pressed=0x7f020062; public static final int fotor_edit_stichers_default=0x7f020063; public static final int fotor_edit_stichers_pressed=0x7f020064; public static final int fotor_edit_text_default=0x7f020065; public static final int fotor_edit_text_pressed=0x7f020066; public static final int fotor_edit_tilt_shift_default=0x7f020067; public static final int fotor_edit_tilt_shift_pressed=0x7f020068; public static final int fotor_effect_border_pack_gallery=0x7f020069; public static final int fotor_effect_border_pack_simple=0x7f02006a; public static final int fotor_effect_border_pack_stamp=0x7f02006b; public static final int fotor_effect_border_pack_styled=0x7f02006c; public static final int fotor_effect_favorites=0x7f02006d; public static final int fotor_effect_favorites_default=0x7f02006e; public static final int fotor_effect_favorites_pressed=0x7f02006f; public static final int fotor_effect_fx_pack_analog=0x7f020070; public static final int fotor_effect_fx_pack_art=0x7f020071; public static final int fotor_effect_fx_pack_lomo=0x7f020072; public static final int fotor_effect_fx_pack_oldpicture=0x7f020073; public static final int fotor_effect_fx_pack_retro=0x7f020074; public static final int fotor_effect_fx_pack_vintage=0x7f020075; public static final int fotor_effects_add=0x7f020076; public static final int fotor_effects_add1_default=0x7f020077; public static final int fotor_effects_add2_default=0x7f020078; public static final int fotor_effects_add3_default=0x7f020079; public static final int fotor_effects_add3_pressed=0x7f02007a; public static final int fotor_effects_add_default=0x7f02007b; public static final int fotor_effects_add_pressed=0x7f02007c; public static final int fotor_effects_add_unavailable=0x7f02007d; public static final int fotor_effects_analog_default=0x7f02007e; public static final int fotor_effects_analog_pressed=0x7f02007f; public static final int fotor_effects_art_default=0x7f020080; public static final int fotor_effects_art_pressed=0x7f020081; public static final int fotor_effects_delete_default=0x7f020082; public static final int fotor_effects_delete_pressed=0x7f020083; public static final int fotor_effects_favorites=0x7f020084; public static final int fotor_effects_favorites1_default=0x7f020085; public static final int fotor_effects_favorites2_default=0x7f020086; public static final int fotor_effects_favorites_default=0x7f020087; public static final int fotor_effects_favorites_pressed=0x7f020088; public static final int fotor_effects_lomo_default=0x7f020089; public static final int fotor_effects_lomo_pressed=0x7f02008a; public static final int fotor_effects_minus=0x7f02008b; public static final int fotor_effects_minus_default=0x7f02008c; public static final int fotor_effects_minus_pressed=0x7f02008d; public static final int fotor_effects_minus_unavailable=0x7f02008e; public static final int fotor_effects_neon_default=0x7f02008f; public static final int fotor_effects_neon_pressed=0x7f020090; public static final int fotor_effects_old_picture_default=0x7f020091; public static final int fotor_effects_old_picture_pressed=0x7f020092; public static final int fotor_effects_retro_default=0x7f020093; public static final int fotor_effects_retro_pressed=0x7f020094; public static final int fotor_effects_vintage_default=0x7f020095; public static final int fotor_effects_vintage_pressed=0x7f020096; public static final int fotor_enhance_high=0x7f020097; public static final int fotor_enhance_high_default=0x7f020098; public static final int fotor_enhance_high_pressed=0x7f020099; public static final int fotor_enhance_low=0x7f02009a; public static final int fotor_enhance_low_default=0x7f02009b; public static final int fotor_enhance_low_pressed=0x7f02009c; public static final int fotor_enhance_medium=0x7f02009d; public static final int fotor_enhance_medium_default=0x7f02009e; public static final int fotor_enhance_medium_pressed=0x7f02009f; public static final int fotor_feature_adjust=0x7f0200a0; public static final int fotor_feature_adjust_advance=0x7f0200a1; public static final int fotor_feature_border=0x7f0200a2; public static final int fotor_feature_crop=0x7f0200a3; public static final int fotor_feature_enhance=0x7f0200a4; public static final int fotor_feature_fx_effects=0x7f0200a5; public static final int fotor_feature_rotate=0x7f0200a6; public static final int fotor_feature_scenes=0x7f0200a7; public static final int fotor_feature_stickers=0x7f0200a8; public static final int fotor_feature_text=0x7f0200a9; public static final int fotor_feature_tilt_shift=0x7f0200aa; public static final int fotor_fonts_pack_art=0x7f0200ab; public static final int fotor_fonts_pack_charm=0x7f0200ac; public static final int fotor_fonts_pack_classic=0x7f0200ad; public static final int fotor_fonts_pack_happy=0x7f0200ae; public static final int fotor_fx_effect_effects_listview_item_background=0x7f0200af; public static final int fotor_header_redo_button=0x7f0200b0; public static final int fotor_header_undo_button=0x7f0200b1; public static final int fotor_hlv_overscroll_edge=0x7f0200b2; public static final int fotor_hlv_overscroll_glow=0x7f0200b3; public static final int fotor_main_apply_button=0x7f0200b4; public static final int fotor_main_apply_default=0x7f0200b5; public static final int fotor_main_apply_pressed=0x7f0200b6; public static final int fotor_main_loading_background=0x7f0200b7; public static final int fotor_main_redo_default=0x7f0200b8; public static final int fotor_main_redo_pressed=0x7f0200b9; public static final int fotor_main_redo_unavailable=0x7f0200ba; public static final int fotor_main_undo_default=0x7f0200bb; public static final int fotor_main_undo_pressed=0x7f0200bc; public static final int fotor_main_undo_unavailable=0x7f0200bd; public static final int fotor_public_slider_layer_list=0x7f0200be; public static final int fotor_public_slider_thumb=0x7f0200bf; public static final int fotor_public_slider_thumb_selector=0x7f0200c0; public static final int fotor_public_slider_value_background=0x7f0200c1; public static final int fotor_rotate_fh_button=0x7f0200c2; public static final int fotor_rotate_fh_default=0x7f0200c3; public static final int fotor_rotate_fh_pressed=0x7f0200c4; public static final int fotor_rotate_fv_button=0x7f0200c5; public static final int fotor_rotate_fv_default=0x7f0200c6; public static final int fotor_rotate_fv_pressed=0x7f0200c7; public static final int fotor_rotate_left_button=0x7f0200c8; public static final int fotor_rotate_left_default=0x7f0200c9; public static final int fotor_rotate_left_pressed=0x7f0200ca; public static final int fotor_rotate_right_button=0x7f0200cb; public static final int fotor_rotate_right_default=0x7f0200cc; public static final int fotor_rotate_right_pressed=0x7f0200cd; public static final int fotor_scenes_backlit=0x7f0200ce; public static final int fotor_scenes_backlit_default=0x7f0200cf; public static final int fotor_scenes_backlit_pressed=0x7f0200d0; public static final int fotor_scenes_cloudy=0x7f0200d1; public static final int fotor_scenes_cloudy_default=0x7f0200d2; public static final int fotor_scenes_cloudy_pressed=0x7f0200d3; public static final int fotor_scenes_darken=0x7f0200d4; public static final int fotor_scenes_darken_default=0x7f0200d5; public static final int fotor_scenes_darken_pressed=0x7f0200d6; public static final int fotor_scenes_flash=0x7f0200d7; public static final int fotor_scenes_flash_default=0x7f0200d8; public static final int fotor_scenes_flash_pressed=0x7f0200d9; public static final int fotor_scenes_fluores_default=0x7f0200da; public static final int fotor_scenes_fluores_pressed=0x7f0200db; public static final int fotor_scenes_fluorescent=0x7f0200dc; public static final int fotor_scenes_food=0x7f0200dd; public static final int fotor_scenes_food_default=0x7f0200de; public static final int fotor_scenes_food_pressed=0x7f0200df; public static final int fotor_scenes_landscape=0x7f0200e0; public static final int fotor_scenes_landscape_default=0x7f0200e1; public static final int fotor_scenes_landscape_pressed=0x7f0200e2; public static final int fotor_scenes_night=0x7f0200e3; public static final int fotor_scenes_night_default=0x7f0200e4; public static final int fotor_scenes_night_pressed=0x7f0200e5; public static final int fotor_scenes_original=0x7f0200e6; public static final int fotor_scenes_original_default=0x7f0200e7; public static final int fotor_scenes_original_pressed=0x7f0200e8; public static final int fotor_scenes_portrait=0x7f0200e9; public static final int fotor_scenes_portrait_default=0x7f0200ea; public static final int fotor_scenes_portrait_pressed=0x7f0200eb; public static final int fotor_scenes_sand_snow=0x7f0200ec; public static final int fotor_scenes_seasid_default=0x7f0200ed; public static final int fotor_scenes_seasid_pressed=0x7f0200ee; public static final int fotor_scenes_shade=0x7f0200ef; public static final int fotor_scenes_shade_default=0x7f0200f0; public static final int fotor_scenes_shade_pressed=0x7f0200f1; public static final int fotor_scenes_sunset=0x7f0200f2; public static final int fotor_scenes_sunset_default=0x7f0200f3; public static final int fotor_scenes_sunset_pressed=0x7f0200f4; public static final int fotor_scenes_theatre=0x7f0200f5; public static final int fotor_scenes_theatre_default=0x7f0200f6; public static final int fotor_scenes_theatre_pressed=0x7f0200f7; public static final int fotor_slider_blue=0x7f0200f8; public static final int fotor_slider_blue_layer_list=0x7f0200f9; public static final int fotor_slider_green=0x7f0200fa; public static final int fotor_slider_green_layer_list=0x7f0200fb; public static final int fotor_slider_public_bg=0x7f0200fc; public static final int fotor_slider_public_process=0x7f0200fd; public static final int fotor_slider_red=0x7f0200fe; public static final int fotor_slider_red_layer_list=0x7f0200ff; public static final int fotor_sticker_delete_button=0x7f020100; public static final int fotor_sticker_delete_default=0x7f020101; public static final int fotor_sticker_delete_pressed=0x7f020102; public static final int fotor_sticker_reset_button=0x7f020103; public static final int fotor_sticker_reset_default=0x7f020104; public static final int fotor_sticker_reset_pressed=0x7f020105; public static final int fotor_sticker_zoom_button=0x7f020106; public static final int fotor_sticker_zoom_default=0x7f020107; public static final int fotor_sticker_zoom_pressed=0x7f020108; public static final int fotor_stickers_boom_default=0x7f020109; public static final int fotor_stickers_boom_pressed=0x7f02010a; public static final int fotor_stickers_button_background_state=0x7f02010b; public static final int fotor_stickers_decoration_default=0x7f02010c; public static final int fotor_stickers_decoration_pressed=0x7f02010d; public static final int fotor_stickers_love_default=0x7f02010e; public static final int fotor_stickers_love_pressed=0x7f02010f; public static final int fotor_stickers_pack_boom=0x7f020110; public static final int fotor_stickers_pack_decoration=0x7f020111; public static final int fotor_stickers_pack_love=0x7f020112; public static final int fotor_stickers_pack_party=0x7f020113; public static final int fotor_stickers_pack_text=0x7f020114; public static final int fotor_stickers_party_default=0x7f020115; public static final int fotor_stickers_party_pressed=0x7f020116; public static final int fotor_stickers_text_default=0x7f020117; public static final int fotor_stickers_text_pressed=0x7f020118; public static final int fotor_text_add_button=0x7f020119; public static final int fotor_text_add_default=0x7f02011a; public static final int fotor_text_add_pressed=0x7f02011b; public static final int fotor_text_add_unavailable=0x7f02011c; public static final int fotor_text_align_center_button=0x7f02011d; public static final int fotor_text_align_left_button=0x7f02011e; public static final int fotor_text_align_right_button=0x7f02011f; public static final int fotor_text_bg_default=0x7f020120; public static final int fotor_text_bg_pressed=0x7f020121; public static final int fotor_text_bold_default=0x7f020122; public static final int fotor_text_bold_pressed=0x7f020123; public static final int fotor_text_bold_unavailable=0x7f020124; public static final int fotor_text_center_alignment_default=0x7f020125; public static final int fotor_text_center_alignment_pressed=0x7f020126; public static final int fotor_text_color_button=0x7f020127; public static final int fotor_text_color_color_button=0x7f020128; public static final int fotor_text_color_color_default=0x7f020129; public static final int fotor_text_color_color_pressed=0x7f02012a; public static final int fotor_text_color_default=0x7f02012b; public static final int fotor_text_color_pressed=0x7f02012c; public static final int fotor_text_color_texture_button=0x7f02012d; public static final int fotor_text_color_texture_default=0x7f02012e; public static final int fotor_text_color_texture_pressed=0x7f02012f; public static final int fotor_text_delete_button=0x7f020130; public static final int fotor_text_delete_default=0x7f020131; public static final int fotor_text_delete_pressed=0x7f020132; public static final int fotor_text_done_button=0x7f020133; public static final int fotor_text_done_default=0x7f020134; public static final int fotor_text_done_pressed=0x7f020135; public static final int fotor_text_item_background=0x7f020136; public static final int fotor_text_keyboard_button=0x7f020137; public static final int fotor_text_keyboard_default=0x7f020138; public static final int fotor_text_keyboard_pressed=0x7f020139; public static final int fotor_text_left_alignment_default=0x7f02013a; public static final int fotor_text_left_alignment_pressed=0x7f02013b; public static final int fotor_text_left_rote_default=0x7f02013c; public static final int fotor_text_left_rote_pressed=0x7f02013d; public static final int fotor_text_left_shadow_default=0x7f02013e; public static final int fotor_text_left_shadow_pressed=0x7f02013f; public static final int fotor_text_lock=0x7f020140; public static final int fotor_text_no_shadow_default=0x7f020141; public static final int fotor_text_no_shadow_pressed=0x7f020142; public static final int fotor_text_oblique_default=0x7f020143; public static final int fotor_text_oblique_pressed=0x7f020144; public static final int fotor_text_oblique_unavailable=0x7f020145; public static final int fotor_text_option_button=0x7f020146; public static final int fotor_text_option_default=0x7f020147; public static final int fotor_text_option_pressed=0x7f020148; public static final int fotor_text_right_alignment_default=0x7f020149; public static final int fotor_text_right_alignment_pressed=0x7f02014a; public static final int fotor_text_right_rote_default=0x7f02014b; public static final int fotor_text_right_rote_pressed=0x7f02014c; public static final int fotor_text_right_shadow_default=0x7f02014d; public static final int fotor_text_right_shadow_pressed=0x7f02014e; public static final int fotor_text_rotation_left_button=0x7f02014f; public static final int fotor_text_rotation_right_button=0x7f020150; public static final int fotor_text_shadow_bottom_button=0x7f020151; public static final int fotor_text_shadow_left_button=0x7f020152; public static final int fotor_text_shadow_right_button=0x7f020153; public static final int fotor_text_size_minus_button=0x7f020154; public static final int fotor_text_size_minus_default=0x7f020155; public static final int fotor_text_size_minus_pressed=0x7f020156; public static final int fotor_text_size_plus_button=0x7f020157; public static final int fotor_text_size_plus_default=0x7f020158; public static final int fotor_text_size_plus_pressed=0x7f020159; public static final int fotor_text_style_bold_button=0x7f02015a; public static final int fotor_text_style_italic_button=0x7f02015b; public static final int fotor_text_texture1=0x7f02015c; public static final int fotor_text_texture10=0x7f02015d; public static final int fotor_text_texture11=0x7f02015e; public static final int fotor_text_texture12=0x7f02015f; public static final int fotor_text_texture13=0x7f020160; public static final int fotor_text_texture14=0x7f020161; public static final int fotor_text_texture15=0x7f020162; public static final int fotor_text_texture16=0x7f020163; public static final int fotor_text_texture17=0x7f020164; public static final int fotor_text_texture18=0x7f020165; public static final int fotor_text_texture19=0x7f020166; public static final int fotor_text_texture2=0x7f020167; public static final int fotor_text_texture20=0x7f020168; public static final int fotor_text_texture3=0x7f020169; public static final int fotor_text_texture4=0x7f02016a; public static final int fotor_text_texture5=0x7f02016b; public static final int fotor_text_texture6=0x7f02016c; public static final int fotor_text_texture7=0x7f02016d; public static final int fotor_text_texture8=0x7f02016e; public static final int fotor_text_texture9=0x7f02016f; public static final int fotor_text_typeface_art_default=0x7f020170; public static final int fotor_text_typeface_art_pressed=0x7f020171; public static final int fotor_text_typeface_button=0x7f020172; public static final int fotor_text_typeface_charm_default=0x7f020173; public static final int fotor_text_typeface_charm_pressed=0x7f020174; public static final int fotor_text_typeface_classic_default=0x7f020175; public static final int fotor_text_typeface_classic_pressed=0x7f020176; public static final int fotor_text_typeface_default=0x7f020177; public static final int fotor_text_typeface_happy_default=0x7f020178; public static final int fotor_text_typeface_happy_pressed=0x7f020179; public static final int fotor_text_typeface_pressed=0x7f02017a; public static final int fotor_tilt_shift_blur_button=0x7f02017b; public static final int fotor_tilt_shift_blur_default=0x7f02017c; public static final int fotor_tilt_shift_blur_pressed=0x7f02017d; public static final int fotor_tilt_shift_circle_button=0x7f02017e; public static final int fotor_tilt_shift_circle_default=0x7f02017f; public static final int fotor_tilt_shift_circle_pressed=0x7f020180; public static final int fotor_tilt_shift_ellipse_button=0x7f020181; public static final int fotor_tilt_shift_ellipse_default=0x7f020182; public static final int fotor_tilt_shift_ellipse_pressed=0x7f020183; public static final int fotor_tilt_shift_linear_button=0x7f020184; public static final int fotor_tilt_shift_linear_default=0x7f020185; public static final int fotor_tilt_shift_linear_pressed=0x7f020186; public static final int fotor_tilt_shift_strength_button=0x7f020187; public static final int fotor_tilt_shift_strength_default=0x7f020188; public static final int fotor_tilt_shift_strength_pressed=0x7f020189; public static final int fotor_title_back_btn_icon=0x7f02018a; public static final int fotor_title_back_btn_icon_default=0x7f02018b; public static final int fotor_title_back_btn_icon_pressed=0x7f02018c; public static final int fotor_transparent=0x7f02018d; public static final int ic_error=0x7f02018e; public static final int ic_launcher=0x7f02018f; public static final int icon=0x7f020190; public static final int photo_editor_button_background=0x7f020191; public static final int photo_editor_nophotos=0x7f020192; } public static final class id { public static final int alwaysScroll=0x7f0a0002; public static final int button2=0x7f0a0009; public static final int button_gallery=0x7f0a0008; public static final int disabled=0x7f0a0000; public static final int fotor_action_settings=0x7f0a0082; public static final int fotor_adjust_curve_reset_button=0x7f0a0015; public static final int fotor_adjust_curve_toggle_button=0x7f0a0014; public static final int fotor_adjust_pan_container=0x7f0a0017; public static final int fotor_adjust_slider=0x7f0a001b; public static final int fotor_adjust_slider_b=0x7f0a001a; public static final int fotor_adjust_slider_g=0x7f0a0019; public static final int fotor_adjust_slider_r=0x7f0a0018; public static final int fotor_adjust_tools_container=0x7f0a0016; public static final int fotor_camera_captureBtn=0x7f0a0010; public static final int fotor_camera_focus_indicator=0x7f0a0011; public static final int fotor_camera_footer_layout=0x7f0a000f; public static final int fotor_camera_header_button=0x7f0a000e; public static final int fotor_camera_header_layout=0x7f0a000d; public static final int fotor_camera_main_layout=0x7f0a000a; public static final int fotor_camera_preview=0x7f0a000c; public static final int fotor_camera_preview_layout=0x7f0a000b; public static final int fotor_content_layer=0x7f0a006f; public static final int fotor_crop_btn_left_bottom=0x7f0a001e; public static final int fotor_crop_btn_left_top=0x7f0a001d; public static final int fotor_crop_btn_right_bottom=0x7f0a0020; public static final int fotor_crop_btn_right_top=0x7f0a001f; public static final int fotor_crop_buttons_container=0x7f0a001c; public static final int fotor_crop_line_bottom=0x7f0a0022; public static final int fotor_crop_line_left=0x7f0a0023; public static final int fotor_crop_line_right=0x7f0a0024; public static final int fotor_crop_line_top=0x7f0a0021; public static final int fotor_crop_operation_container=0x7f0a0025; public static final int fotor_crop_ratio_button=0x7f0a0029; public static final int fotor_crop_restore=0x7f0a0028; public static final int fotor_crop_slider=0x7f0a0027; public static final int fotor_feature_draw_panel_container=0x7f0a0070; public static final int fotor_feature_title=0x7f0a007d; public static final int fotor_fitscreen_imageview=0x7f0a002f; public static final int fotor_footerContainer=0x7f0a0075; public static final int fotor_fx_effect_add=0x7f0a003b; public static final int fotor_fx_effect_add_or_delete=0x7f0a003a; public static final int fotor_fx_effect_blend_slider=0x7f0a0035; public static final int fotor_fx_effect_category_container=0x7f0a002a; public static final int fotor_fx_effect_category_listview=0x7f0a002b; public static final int fotor_fx_effect_category_loading_container=0x7f0a002c; public static final int fotor_fx_effect_category_loading_pb=0x7f0a003e; public static final int fotor_fx_effect_container=0x7f0a002d; public static final int fotor_fx_effect_effects_listview_item_imageview=0x7f0a0031; public static final int fotor_fx_effect_effects_listview_item_progressbar=0x7f0a0033; public static final int fotor_fx_effect_effects_listview_item_selector=0x7f0a0034; public static final int fotor_fx_effect_effects_listview_item_textview=0x7f0a0032; public static final int fotor_fx_effect_favorites=0x7f0a003d; public static final int fotor_fx_effect_imageview=0x7f0a0030; public static final int fotor_fx_effect_listview=0x7f0a002e; public static final int fotor_fx_effect_minus=0x7f0a003c; public static final int fotor_fx_effect_superposed_choose_container=0x7f0a0037; public static final int fotor_fx_effect_superposed_choose_listview=0x7f0a0038; public static final int fotor_fx_effect_superposed_container=0x7f0a0036; public static final int fotor_fx_effect_superposed_listview=0x7f0a0039; public static final int fotor_headerContainer=0x7f0a006e; public static final int fotor_imageView=0x7f0a0071; public static final int fotor_image_top_layer=0x7f0a0073; public static final int fotor_lock_event_view=0x7f0a0077; public static final int fotor_main_apply=0x7f0a0080; public static final int fotor_main_btn_redo=0x7f0a007f; public static final int fotor_main_btn_undo=0x7f0a007e; public static final int fotor_main_header_text_container=0x7f0a007b; public static final int fotor_main_loading_view=0x7f0a0072; public static final int fotor_main_title=0x7f0a007c; public static final int fotor_navigation_button=0x7f0a007a; public static final int fotor_operation_tool_background=0x7f0a0026; public static final int fotor_operation_tool_layer=0x7f0a0074; public static final int fotor_operations_container=0x7f0a0079; public static final int fotor_progress=0x7f0a0003; public static final int fotor_progress_bar=0x7f0a0081; public static final int fotor_rotate_pan_container=0x7f0a003f; public static final int fotor_scenes_pan_container=0x7f0a0040; public static final int fotor_screen_top_layer=0x7f0a0076; public static final int fotor_scroll_linear_layout=0x7f0a0013; public static final int fotor_scroll_view=0x7f0a0012; public static final int fotor_sdk_version_label=0x7f0a0005; public static final int fotor_secondaryProgress=0x7f0a0004; public static final int fotor_stickers_button=0x7f0a0041; public static final int fotor_stickers_category_container=0x7f0a0042; public static final int fotor_stickers_category_listview=0x7f0a0043; public static final int fotor_stickers_category_loading_container=0x7f0a0044; public static final int fotor_stickers_stickers_container=0x7f0a0045; public static final int fotor_stickers_stickers_listview=0x7f0a0046; public static final int fotor_text_add_button=0x7f0a004a; public static final int fotor_text_align_center_button=0x7f0a005a; public static final int fotor_text_align_left_button=0x7f0a0059; public static final int fotor_text_align_right_button=0x7f0a005b; public static final int fotor_text_color_button=0x7f0a004f; public static final int fotor_text_color_color_button=0x7f0a0047; public static final int fotor_text_color_texture_button=0x7f0a0048; public static final int fotor_text_colors_container=0x7f0a0049; public static final int fotor_text_done_button=0x7f0a0051; public static final int fotor_text_keyboard_button=0x7f0a004d; public static final int fotor_text_navigation_panel=0x7f0a004c; public static final int fotor_text_opacity_slider=0x7f0a005f; public static final int fotor_text_operation_container=0x7f0a0052; public static final int fotor_text_option_button=0x7f0a0050; public static final int fotor_text_rotation_left_button=0x7f0a0055; public static final int fotor_text_rotation_right_button=0x7f0a0056; public static final int fotor_text_shadow_bottom_button=0x7f0a005d; public static final int fotor_text_shadow_left_button=0x7f0a005c; public static final int fotor_text_shadow_right_button=0x7f0a005e; public static final int fotor_text_size_minus_button=0x7f0a0054; public static final int fotor_text_size_plus_button=0x7f0a0053; public static final int fotor_text_style_bold_button=0x7f0a0057; public static final int fotor_text_style_italic_button=0x7f0a0058; public static final int fotor_text_typeface_button=0x7f0a004e; public static final int fotor_text_typeface_category_btn=0x7f0a0060; public static final int fotor_text_typeface_category_list=0x7f0a0065; public static final int fotor_text_typeface_category_lock=0x7f0a0061; public static final int fotor_text_typeface_imageview=0x7f0a0064; public static final int fotor_text_typeface_item=0x7f0a0062; public static final int fotor_text_typeface_list=0x7f0a0066; public static final int fotor_text_typeface_textview=0x7f0a0063; public static final int fotor_texts_category_loading_container=0x7f0a004b; public static final int fotor_tilt_shift_circle=0x7f0a0067; public static final int fotor_tilt_shift_ellipse=0x7f0a0069; public static final int fotor_tilt_shift_gradient=0x7f0a006a; public static final int fotor_tilt_shift_linear=0x7f0a0068; public static final int fotor_tilt_shift_slider=0x7f0a006c; public static final int fotor_tilt_shift_strength=0x7f0a006b; public static final int fotor_tools_container=0x7f0a0078; public static final int fotor_zoom_imageview=0x7f0a006d; public static final int image=0x7f0a0007; public static final int image_container=0x7f0a0006; public static final int normal=0x7f0a0001; } public static final class integer { public static final int fotor_anim_medium_duration=0x7f070001; public static final int fotor_anim_short_duration=0x7f070000; public static final int fotor_default_slider_adjustDistance=0x7f070002; } public static final class layout { public static final int activity_main=0x7f030000; public static final int fotor_camera_main=0x7f030001; public static final int fotor_default_bottom_layout=0x7f030002; public static final int fotor_feature_adjust_operation_curve_controller=0x7f030003; public static final int fotor_feature_adjust_operation_panel=0x7f030004; public static final int fotor_feature_adjust_operation_rgb_tools=0x7f030005; public static final int fotor_feature_adjust_operation_tools=0x7f030006; public static final int fotor_feature_border_effect_operation_panel=0x7f030007; public static final int fotor_feature_crop_maskview=0x7f030008; public static final int fotor_feature_crop_operation_panel=0x7f030009; public static final int fotor_feature_crop_operation_tools=0x7f03000a; public static final int fotor_feature_crop_ratio_item=0x7f03000b; public static final int fotor_feature_effect_operation_panel=0x7f03000c; public static final int fotor_feature_enhance_operation_panel=0x7f03000d; public static final int fotor_feature_fitscreen_draw_panel=0x7f03000e; public static final int fotor_feature_fx_effect_draw_panel=0x7f03000f; public static final int fotor_feature_fx_effect_effects_listview_item=0x7f030010; public static final int fotor_feature_fx_effect_operation_blend_tools=0x7f030011; public static final int fotor_feature_fx_effect_operation_panel=0x7f030012; public static final int fotor_feature_fx_effect_operation_superposed_tools=0x7f030013; public static final int fotor_feature_fx_effect_operation_tools=0x7f030014; public static final int fotor_feature_operation_loading_component=0x7f030015; public static final int fotor_feature_rotate_operation_panel=0x7f030016; public static final int fotor_feature_scenes_operation_panel=0x7f030017; public static final int fotor_feature_stickers_item=0x7f030018; public static final int fotor_feature_stickers_operation_panel=0x7f030019; public static final int fotor_feature_text_color_panel=0x7f03001a; public static final int fotor_feature_text_operation_panel=0x7f03001b; public static final int fotor_feature_text_operation_tools=0x7f03001c; public static final int fotor_feature_text_option_panel=0x7f03001d; public static final int fotor_feature_text_typeface_category_item=0x7f03001e; public static final int fotor_feature_text_typeface_item=0x7f03001f; public static final int fotor_feature_text_typeface_panel=0x7f030020; public static final int fotor_feature_tilt_shift_operation_panel=0x7f030021; public static final int fotor_feature_tilt_shift_operation_tools=0x7f030022; public static final int fotor_feature_zoom_draw_panel=0x7f030023; public static final int fotor_loading_progress_medium=0x7f030024; public static final int fotor_main=0x7f030025; public static final int fotor_main_footer=0x7f030026; public static final int fotor_main_footer_item=0x7f030027; public static final int fotor_main_header=0x7f030028; public static final int fotor_main_loadding=0x7f030029; public static final int fotor_progress_medium=0x7f03002a; } public static final class menu { public static final int fotor_camera_menu=0x7f0c0000; } public static final class raw { public static final int basefilter=0x7f050000; public static final int optimization=0x7f050001; public static final int temporary=0x7f050002; } public static final class string { public static final int action_settings=0x7f090070; public static final int app_name=0x7f09006f; public static final int fotor_adjust_brightness=0x7f09001f; public static final int fotor_adjust_contrast=0x7f090020; public static final int fotor_adjust_curve=0x7f090029; public static final int fotor_adjust_curve_hide=0x7f09002b; public static final int fotor_adjust_curve_reset=0x7f09002c; public static final int fotor_adjust_curve_show=0x7f09002a; public static final int fotor_adjust_highlight=0x7f090025; public static final int fotor_adjust_rgb=0x7f090028; public static final int fotor_adjust_saturation=0x7f090021; public static final int fotor_adjust_shadow=0x7f090024; public static final int fotor_adjust_sharpen=0x7f090022; public static final int fotor_adjust_temp=0x7f090026; public static final int fotor_adjust_tint=0x7f090027; public static final int fotor_adjust_vignette=0x7f090023; /** Fotor common strings */ public static final int fotor_back=0x7f09005a; public static final int fotor_crop_10_8=0x7f090049; public static final int fotor_crop_16_9=0x7f09004b; public static final int fotor_crop_1_1=0x7f090042; public static final int fotor_crop_3_4=0x7f090044; public static final int fotor_crop_4_3=0x7f090043; public static final int fotor_crop_4_6=0x7f090046; public static final int fotor_crop_5_7=0x7f090048; public static final int fotor_crop_6_4=0x7f090045; public static final int fotor_crop_7_5=0x7f090047; public static final int fotor_crop_8_10=0x7f09004a; public static final int fotor_crop_9_16=0x7f09004c; public static final int fotor_crop_free=0x7f090040; public static final int fotor_crop_original=0x7f090041; public static final int fotor_dialog_alert_message_plugin_update=0x7f090069; public static final int fotor_dialog_alert_message_save=0x7f09006b; public static final int fotor_dialog_alert_negative_save=0x7f09006c; public static final int fotor_dialog_alert_positive_save=0x7f09006d; public static final int fotor_dialog_alert_title_plugin_update=0x7f09006e; /** Fotor dialog text */ public static final int fotor_dialog_alert_title_save=0x7f09006a; public static final int fotor_effect_border_pack_gallery=0x7f090007; public static final int fotor_effect_border_pack_simple=0x7f090005; public static final int fotor_effect_border_pack_styled=0x7f090006; public static final int fotor_effect_fx_pack_analog=0x7f090000; public static final int fotor_effect_fx_pack_lomo=0x7f090004; public static final int fotor_effect_fx_pack_oldpicture=0x7f090001; public static final int fotor_effect_fx_pack_retro=0x7f090002; public static final int fotor_effect_fx_pack_vintage=0x7f090003; public static final int fotor_effect_store=0x7f090068; public static final int fotor_enhance_high=0x7f090059; public static final int fotor_enhance_low=0x7f090057; public static final int fotor_enhance_medium=0x7f090058; public static final int fotor_favorites=0x7f09005d; public static final int fotor_feature_adjust=0x7f090012; public static final int fotor_feature_adjust_advance=0x7f090013; public static final int fotor_feature_border=0x7f090015; public static final int fotor_feature_crop=0x7f090016; public static final int fotor_feature_enhance=0x7f090010; public static final int fotor_feature_fx_effects=0x7f090014; public static final int fotor_feature_rotate=0x7f090017; public static final int fotor_feature_scenes=0x7f090011; public static final int fotor_feature_stickers=0x7f090018; public static final int fotor_feature_text=0x7f09001a; public static final int fotor_feature_tilt_shift=0x7f090019; public static final int fotor_font_assets_path=0x7f090056; public static final int fotor_font_roboto_bold=0x7f090054; public static final int fotor_font_roboto_bold_name=0x7f090055; public static final int fotor_font_roboto_light=0x7f090052; public static final int fotor_font_roboto_light_name=0x7f090053; public static final int fotor_fonts_pack_charm=0x7f090009; public static final int fotor_fonts_pack_classic=0x7f090008; public static final int fotor_loading=0x7f09005b; public static final int fotor_main_apply=0x7f09001c; public static final int fotor_main_cancel=0x7f09001b; public static final int fotor_main_redo=0x7f09001e; public static final int fotor_main_undo=0x7f09001d; public static final int fotor_original=0x7f09005c; public static final int fotor_rotate_fliph=0x7f090030; public static final int fotor_rotate_flipv=0x7f09002f; public static final int fotor_rotate_left=0x7f09002d; public static final int fotor_rotate_right=0x7f09002e; public static final int fotor_scenes_auto=0x7f090032; public static final int fotor_scenes_backlit=0x7f090033; public static final int fotor_scenes_cloudy=0x7f090035; public static final int fotor_scenes_darken=0x7f090034; public static final int fotor_scenes_flash=0x7f090039; public static final int fotor_scenes_fluorescent=0x7f09003a; public static final int fotor_scenes_food=0x7f09003f; public static final int fotor_scenes_landscape=0x7f09003d; public static final int fotor_scenes_night=0x7f090038; public static final int fotor_scenes_original=0x7f090031; public static final int fotor_scenes_portrait=0x7f09003b; public static final int fotor_scenes_sand_snow=0x7f09003c; public static final int fotor_scenes_shade=0x7f090036; public static final int fotor_scenes_sunset=0x7f090037; public static final int fotor_scenes_theatre=0x7f09003e; public static final int fotor_stickers_abstract=0x7f090066; public static final int fotor_stickers_boom=0x7f090067; public static final int fotor_stickers_pack_boom=0x7f09000b; public static final int fotor_stickers_pack_decoration=0x7f09000c; public static final int fotor_stickers_pack_love=0x7f09000d; public static final int fotor_stickers_pack_party=0x7f09000e; public static final int fotor_stickers_pack_text=0x7f09000a; public static final int fotor_text_add_btn=0x7f09005e; public static final int fotor_text_alignment=0x7f090063; public static final int fotor_text_default_text=0x7f09005f; public static final int fotor_text_opacity=0x7f090065; public static final int fotor_text_rotation=0x7f090061; public static final int fotor_text_shadow=0x7f090064; public static final int fotor_text_style=0x7f090062; public static final int fotor_text_textsize=0x7f090060; public static final int fotor_tilt_shift_circle=0x7f09004f; public static final int fotor_tilt_shift_ellipse=0x7f090051; public static final int fotor_tilt_shift_gradient=0x7f09004d; public static final int fotor_tilt_shift_linear=0x7f090050; public static final int fotor_tilt_shift_strength=0x7f09004e; public static final int fotor_title_main=0x7f09000f; public static final int hello_world=0x7f090071; public static final int photo_editor=0x7f090072; public static final int photo_editor_process=0x7f090074; public static final int photo_editor_select_image=0x7f090073; } public static final class style { /** Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vXX/styles.xml on newer devices. Theme customizations available in newer API levels can go in res/values-vXX/styles.xml, while customizations related to backward-compatibility can go here. Base application theme for API 11+. This theme completely replaces AppBaseTheme from res/values/styles.xml on API 11+ devices. API 11 theme customizations can go here. Base application theme for API 14+. This theme completely replaces AppBaseTheme from BOTH res/values/styles.xml and res/values-v11/styles.xml on API 14+ devices. API 14 theme customizations can go here. */ public static final int AppBaseTheme=0x7f0b000b; /** Application theme. All customizations that are NOT specific to a particular API-level can go here. */ public static final int AppTheme=0x7f0b000c; /** Base application theme for API 14+. This theme completely replaces AppBaseTheme from BOTH res/values/styles.xml and res/values-v11/styles.xml on API 14+ devices. API 14 theme customizations can go here. */ public static final int FotorBaseTheme=0x7f0b0009; public static final int FotorCustomSliderDefault=0x7f0b0001; public static final int FotorTheme=0x7f0b000a; public static final int FotorWidget=0x7f0b0000; public static final int FotorWidget_EffectSelectorView=0x7f0b0007; public static final int FotorWidget_NavigationButton=0x7f0b0002; public static final int FotorWidget_TextButton=0x7f0b0006; public static final int FotorWidget_TextView=0x7f0b0005; public static final int FotorWidget_TitleBackButton=0x7f0b0008; public static final int fotorHeaderButtonDefault=0x7f0b0004; public static final int fotorOperToolPanelDefault=0x7f0b0003; } public static final class styleable { /** Attributes that can be used with a AbsHListView.

Includes the following attributes:

AttributeDescription
{@link #AbsHListView_android_cacheColorHint android:cacheColorHint}
{@link #AbsHListView_android_choiceMode android:choiceMode}
{@link #AbsHListView_android_drawSelectorOnTop android:drawSelectorOnTop}
{@link #AbsHListView_android_listSelector android:listSelector}
{@link #AbsHListView_android_scrollingCache android:scrollingCache}
{@link #AbsHListView_android_smoothScrollbar android:smoothScrollbar}
{@link #AbsHListView_stackFromRight com.example.fotorsdkdemo:stackFromRight}
{@link #AbsHListView_transcriptMode com.example.fotorsdkdemo:transcriptMode}
@see #AbsHListView_android_cacheColorHint @see #AbsHListView_android_choiceMode @see #AbsHListView_android_drawSelectorOnTop @see #AbsHListView_android_listSelector @see #AbsHListView_android_scrollingCache @see #AbsHListView_android_smoothScrollbar @see #AbsHListView_stackFromRight @see #AbsHListView_transcriptMode */ public static final int[] AbsHListView = { 0x010100fb, 0x010100fc, 0x010100fe, 0x01010101, 0x0101012b, 0x01010231, 0x7f010036, 0x7f010037 }; /**

This symbol is the offset where the {@link android.R.attr#cacheColorHint} attribute's value can be found in the {@link #AbsHListView} array. @attr name android:cacheColorHint */ public static final int AbsHListView_android_cacheColorHint = 3; /**

This symbol is the offset where the {@link android.R.attr#choiceMode} attribute's value can be found in the {@link #AbsHListView} array. @attr name android:choiceMode */ public static final int AbsHListView_android_choiceMode = 4; /**

This symbol is the offset where the {@link android.R.attr#drawSelectorOnTop} attribute's value can be found in the {@link #AbsHListView} array. @attr name android:drawSelectorOnTop */ public static final int AbsHListView_android_drawSelectorOnTop = 1; /**

This symbol is the offset where the {@link android.R.attr#listSelector} attribute's value can be found in the {@link #AbsHListView} array. @attr name android:listSelector */ public static final int AbsHListView_android_listSelector = 0; /**

This symbol is the offset where the {@link android.R.attr#scrollingCache} attribute's value can be found in the {@link #AbsHListView} array. @attr name android:scrollingCache */ public static final int AbsHListView_android_scrollingCache = 2; /**

This symbol is the offset where the {@link android.R.attr#smoothScrollbar} attribute's value can be found in the {@link #AbsHListView} array. @attr name android:smoothScrollbar */ public static final int AbsHListView_android_smoothScrollbar = 5; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#stackFromRight} attribute's value can be found in the {@link #AbsHListView} array.

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:stackFromRight */ public static final int AbsHListView_stackFromRight = 6; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#transcriptMode} attribute's value can be found in the {@link #AbsHListView} array.

Must be one of the following constant values.

ConstantValueDescription
disabled0
normal1
alwaysScroll2
@attr name com.example.fotorsdkdemo:transcriptMode */ public static final int AbsHListView_transcriptMode = 7; /** Attributes that can be used with a FotorCustomSlider.

Includes the following attributes:

AttributeDescription
{@link #FotorCustomSlider_fotorCustomSlider_adjustYDistance com.example.fotorsdkdemo:fotorCustomSlider_adjustYDistance}
{@link #FotorCustomSlider_fotorCustomSlider_isShowValue com.example.fotorsdkdemo:fotorCustomSlider_isShowValue}
{@link #FotorCustomSlider_fotorCustomSlider_max com.example.fotorsdkdemo:fotorCustomSlider_max}
{@link #FotorCustomSlider_fotorCustomSlider_progress com.example.fotorsdkdemo:fotorCustomSlider_progress}
{@link #FotorCustomSlider_fotorCustomSlider_progressDrawable com.example.fotorsdkdemo:fotorCustomSlider_progressDrawable}
{@link #FotorCustomSlider_fotorCustomSlider_thumb com.example.fotorsdkdemo:fotorCustomSlider_thumb}
{@link #FotorCustomSlider_fotorCustomSlider_typeface com.example.fotorsdkdemo:fotorCustomSlider_typeface}
{@link #FotorCustomSlider_fotorCustomSlider_valueBackground com.example.fotorsdkdemo:fotorCustomSlider_valueBackground}
@see #FotorCustomSlider_fotorCustomSlider_adjustYDistance @see #FotorCustomSlider_fotorCustomSlider_isShowValue @see #FotorCustomSlider_fotorCustomSlider_max @see #FotorCustomSlider_fotorCustomSlider_progress @see #FotorCustomSlider_fotorCustomSlider_progressDrawable @see #FotorCustomSlider_fotorCustomSlider_thumb @see #FotorCustomSlider_fotorCustomSlider_typeface @see #FotorCustomSlider_fotorCustomSlider_valueBackground */ public static final int[] FotorCustomSlider = { 0x7f010015, 0x7f010016, 0x7f010017, 0x7f010018, 0x7f010019, 0x7f01001a, 0x7f01001b, 0x7f01001c }; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_adjustYDistance} attribute's value can be found in the {@link #FotorCustomSlider} array.

Must be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorCustomSlider_adjustYDistance */ public static final int FotorCustomSlider_fotorCustomSlider_adjustYDistance = 0; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_isShowValue} attribute's value can be found in the {@link #FotorCustomSlider} array.

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorCustomSlider_isShowValue */ public static final int FotorCustomSlider_fotorCustomSlider_isShowValue = 1; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_max} attribute's value can be found in the {@link #FotorCustomSlider} array.

Must be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorCustomSlider_max */ public static final int FotorCustomSlider_fotorCustomSlider_max = 6; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_progress} attribute's value can be found in the {@link #FotorCustomSlider} array.

Must be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorCustomSlider_progress */ public static final int FotorCustomSlider_fotorCustomSlider_progress = 7; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_progressDrawable} attribute's value can be found in the {@link #FotorCustomSlider} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorCustomSlider_progressDrawable */ public static final int FotorCustomSlider_fotorCustomSlider_progressDrawable = 5; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_thumb} attribute's value can be found in the {@link #FotorCustomSlider} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorCustomSlider_thumb */ public static final int FotorCustomSlider_fotorCustomSlider_thumb = 3; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_typeface} attribute's value can be found in the {@link #FotorCustomSlider} array.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorCustomSlider_typeface */ public static final int FotorCustomSlider_fotorCustomSlider_typeface = 4; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_valueBackground} attribute's value can be found in the {@link #FotorCustomSlider} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorCustomSlider_valueBackground */ public static final int FotorCustomSlider_fotorCustomSlider_valueBackground = 2; /** Attributes that can be used with a FotorEffectSelectorView.

Includes the following attributes:

AttributeDescription
{@link #FotorEffectSelectorView_fotorEffectSelectorView_Color com.example.fotorsdkdemo:fotorEffectSelectorView_Color}
@see #FotorEffectSelectorView_fotorEffectSelectorView_Color */ public static final int[] FotorEffectSelectorView = { 0x7f010026 }; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorEffectSelectorView_Color} attribute's value can be found in the {@link #FotorEffectSelectorView} array.

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorEffectSelectorView_Color */ public static final int FotorEffectSelectorView_fotorEffectSelectorView_Color = 0; /** Attributes that can be used with a FotorHeaderButton.

Includes the following attributes:

AttributeDescription
{@link #FotorHeaderButton_fotorHeaderButton_typeface com.example.fotorsdkdemo:fotorHeaderButton_typeface}
@see #FotorHeaderButton_fotorHeaderButton_typeface */ public static final int[] FotorHeaderButton = { 0x7f010025 }; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorHeaderButton_typeface} attribute's value can be found in the {@link #FotorHeaderButton} array.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorHeaderButton_typeface */ public static final int FotorHeaderButton_fotorHeaderButton_typeface = 0; /** Attributes that can be used with a FotorNavigationButton.

Includes the following attributes:

AttributeDescription
{@link #FotorNavigationButton_fotorNavigationBtn_color_default com.example.fotorsdkdemo:fotorNavigationBtn_color_default}
{@link #FotorNavigationButton_fotorNavigationBtn_color_disabled com.example.fotorsdkdemo:fotorNavigationBtn_color_disabled}
{@link #FotorNavigationButton_fotorNavigationBtn_color_pressed com.example.fotorsdkdemo:fotorNavigationBtn_color_pressed}
{@link #FotorNavigationButton_fotorNavigationBtn_isShowPressedBackground com.example.fotorsdkdemo:fotorNavigationBtn_isShowPressedBackground}
{@link #FotorNavigationButton_fotorNavigationBtn_pressed_background com.example.fotorsdkdemo:fotorNavigationBtn_pressed_background}
{@link #FotorNavigationButton_fotorNavigationBtn_text com.example.fotorsdkdemo:fotorNavigationBtn_text}
{@link #FotorNavigationButton_fotorNavigationBtn_typeface com.example.fotorsdkdemo:fotorNavigationBtn_typeface}
@see #FotorNavigationButton_fotorNavigationBtn_color_default @see #FotorNavigationButton_fotorNavigationBtn_color_disabled @see #FotorNavigationButton_fotorNavigationBtn_color_pressed @see #FotorNavigationButton_fotorNavigationBtn_isShowPressedBackground @see #FotorNavigationButton_fotorNavigationBtn_pressed_background @see #FotorNavigationButton_fotorNavigationBtn_text @see #FotorNavigationButton_fotorNavigationBtn_typeface */ public static final int[] FotorNavigationButton = { 0x7f01001d, 0x7f01001e, 0x7f01001f, 0x7f010020, 0x7f010021, 0x7f010022, 0x7f010023 }; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_color_default} attribute's value can be found in the {@link #FotorNavigationButton} array.

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorNavigationBtn_color_default */ public static final int FotorNavigationButton_fotorNavigationBtn_color_default = 3; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_color_disabled} attribute's value can be found in the {@link #FotorNavigationButton} array.

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorNavigationBtn_color_disabled */ public static final int FotorNavigationButton_fotorNavigationBtn_color_disabled = 5; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_color_pressed} attribute's value can be found in the {@link #FotorNavigationButton} array.

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorNavigationBtn_color_pressed */ public static final int FotorNavigationButton_fotorNavigationBtn_color_pressed = 4; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_isShowPressedBackground} attribute's value can be found in the {@link #FotorNavigationButton} array.

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorNavigationBtn_isShowPressedBackground */ public static final int FotorNavigationButton_fotorNavigationBtn_isShowPressedBackground = 0; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_pressed_background} attribute's value can be found in the {@link #FotorNavigationButton} array.

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorNavigationBtn_pressed_background */ public static final int FotorNavigationButton_fotorNavigationBtn_pressed_background = 6; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_text} attribute's value can be found in the {@link #FotorNavigationButton} array.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorNavigationBtn_text */ public static final int FotorNavigationButton_fotorNavigationBtn_text = 1; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_typeface} attribute's value can be found in the {@link #FotorNavigationButton} array.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorNavigationBtn_typeface */ public static final int FotorNavigationButton_fotorNavigationBtn_typeface = 2; /** Attributes that can be used with a FotorOperToolPanel.

Includes the following attributes:

AttributeDescription
{@link #FotorOperToolPanel_fotorOperToolPanel_bottomLine_Color com.example.fotorsdkdemo:fotorOperToolPanel_bottomLine_Color}
@see #FotorOperToolPanel_fotorOperToolPanel_bottomLine_Color */ public static final int[] FotorOperToolPanel = { 0x7f010024 }; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorOperToolPanel_bottomLine_Color} attribute's value can be found in the {@link #FotorOperToolPanel} array.

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorOperToolPanel_bottomLine_Color */ public static final int FotorOperToolPanel_fotorOperToolPanel_bottomLine_Color = 0; /** Attributes that can be used with a FotorTextButton.

Includes the following attributes:

AttributeDescription
{@link #FotorTextButton_fotorTextButton_typeface com.example.fotorsdkdemo:fotorTextButton_typeface}
@see #FotorTextButton_fotorTextButton_typeface */ public static final int[] FotorTextButton = { 0x7f010014 }; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTextButton_typeface} attribute's value can be found in the {@link #FotorTextButton} array.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorTextButton_typeface */ public static final int FotorTextButton_fotorTextButton_typeface = 0; /** Attributes that can be used with a FotorTextView.

Includes the following attributes:

AttributeDescription
{@link #FotorTextView_fotorTextView_typeface com.example.fotorsdkdemo:fotorTextView_typeface}
@see #FotorTextView_fotorTextView_typeface */ public static final int[] FotorTextView = { 0x7f010013 }; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTextView_typeface} attribute's value can be found in the {@link #FotorTextView} array.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorTextView_typeface */ public static final int FotorTextView_fotorTextView_typeface = 0; /** Attributes that can be used with a FotorTitleBackButton.

Includes the following attributes:

AttributeDescription
{@link #FotorTitleBackButton_fotorTitleBackButton_IconDrawable com.example.fotorsdkdemo:fotorTitleBackButton_IconDrawable}
{@link #FotorTitleBackButton_fotorTitleBackButton_Text com.example.fotorsdkdemo:fotorTitleBackButton_Text}
{@link #FotorTitleBackButton_fotorTitleBackButton_TextColor com.example.fotorsdkdemo:fotorTitleBackButton_TextColor}
{@link #FotorTitleBackButton_fotorTitleBackButton_Textsize com.example.fotorsdkdemo:fotorTitleBackButton_Textsize}
{@link #FotorTitleBackButton_fotorTitleBackButton_Typeface com.example.fotorsdkdemo:fotorTitleBackButton_Typeface}
@see #FotorTitleBackButton_fotorTitleBackButton_IconDrawable @see #FotorTitleBackButton_fotorTitleBackButton_Text @see #FotorTitleBackButton_fotorTitleBackButton_TextColor @see #FotorTitleBackButton_fotorTitleBackButton_Textsize @see #FotorTitleBackButton_fotorTitleBackButton_Typeface */ public static final int[] FotorTitleBackButton = { 0x7f010027, 0x7f010028, 0x7f010029, 0x7f01002a, 0x7f01002b }; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTitleBackButton_IconDrawable} attribute's value can be found in the {@link #FotorTitleBackButton} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorTitleBackButton_IconDrawable */ public static final int FotorTitleBackButton_fotorTitleBackButton_IconDrawable = 3; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTitleBackButton_Text} attribute's value can be found in the {@link #FotorTitleBackButton} array.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorTitleBackButton_Text */ public static final int FotorTitleBackButton_fotorTitleBackButton_Text = 1; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTitleBackButton_TextColor} attribute's value can be found in the {@link #FotorTitleBackButton} array.

May be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb". @attr name com.example.fotorsdkdemo:fotorTitleBackButton_TextColor */ public static final int FotorTitleBackButton_fotorTitleBackButton_TextColor = 2; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTitleBackButton_Textsize} attribute's value can be found in the {@link #FotorTitleBackButton} array.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorTitleBackButton_Textsize */ public static final int FotorTitleBackButton_fotorTitleBackButton_Textsize = 0; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTitleBackButton_Typeface} attribute's value can be found in the {@link #FotorTitleBackButton} array.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorTitleBackButton_Typeface */ public static final int FotorTitleBackButton_fotorTitleBackButton_Typeface = 4; /** Attributes that can be used with a HListView.

Includes the following attributes:

AttributeDescription
{@link #HListView_android_divider android:divider}
{@link #HListView_android_entries android:entries}
{@link #HListView_dividerWidth com.example.fotorsdkdemo:dividerWidth}
{@link #HListView_footerDividersEnabled com.example.fotorsdkdemo:footerDividersEnabled}
{@link #HListView_headerDividersEnabled com.example.fotorsdkdemo:headerDividersEnabled}
{@link #HListView_measureWithChild com.example.fotorsdkdemo:measureWithChild} When "wrap_content" is used as value of the layout_height property.
{@link #HListView_overScrollFooter com.example.fotorsdkdemo:overScrollFooter}
{@link #HListView_overScrollHeader com.example.fotorsdkdemo:overScrollHeader}
@see #HListView_android_divider @see #HListView_android_entries @see #HListView_dividerWidth @see #HListView_footerDividersEnabled @see #HListView_headerDividersEnabled @see #HListView_measureWithChild @see #HListView_overScrollFooter @see #HListView_overScrollHeader */ public static final int[] HListView = { 0x010100b2, 0x01010129, 0x7f010030, 0x7f010031, 0x7f010032, 0x7f010033, 0x7f010034, 0x7f010035 }; /**

This symbol is the offset where the {@link android.R.attr#divider} attribute's value can be found in the {@link #HListView} array. @attr name android:divider */ public static final int HListView_android_divider = 1; /**

This symbol is the offset where the {@link android.R.attr#entries} attribute's value can be found in the {@link #HListView} array. @attr name android:entries */ public static final int HListView_android_entries = 0; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#dividerWidth} attribute's value can be found in the {@link #HListView} array.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:dividerWidth */ public static final int HListView_dividerWidth = 2; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#footerDividersEnabled} attribute's value can be found in the {@link #HListView} array.

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:footerDividersEnabled */ public static final int HListView_footerDividersEnabled = 4; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#headerDividersEnabled} attribute's value can be found in the {@link #HListView} array.

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:headerDividersEnabled */ public static final int HListView_headerDividersEnabled = 3; /**

@attr description When "wrap_content" is used as value of the layout_height property. Pass the position, inside the adapter, of the view being used to measure the view or '-1' to use the default behavior ( default is -1 )

Must be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This is a private symbol. @attr name com.example.fotorsdkdemo:measureWithChild */ public static final int HListView_measureWithChild = 7; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#overScrollFooter} attribute's value can be found in the {@link #HListView} array.

May be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb". @attr name com.example.fotorsdkdemo:overScrollFooter */ public static final int HListView_overScrollFooter = 6; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#overScrollHeader} attribute's value can be found in the {@link #HListView} array.

May be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb". @attr name com.example.fotorsdkdemo:overScrollHeader */ public static final int HListView_overScrollHeader = 5; /** Attributes that can be used with a Theme.

Includes the following attributes:

AttributeDescription
{@link #Theme_fotorDefaultEffectSelectorViewStyle com.example.fotorsdkdemo:fotorDefaultEffectSelectorViewStyle}
{@link #Theme_fotorDefaultHeaderButtonStyle com.example.fotorsdkdemo:fotorDefaultHeaderButtonStyle}
{@link #Theme_fotorDefaultImageViewBackground com.example.fotorsdkdemo:fotorDefaultImageViewBackground}
{@link #Theme_fotorDefaultNavigateBtnStyle com.example.fotorsdkdemo:fotorDefaultNavigateBtnStyle}
{@link #Theme_fotorDefaultOperToolPanelStyle com.example.fotorsdkdemo:fotorDefaultOperToolPanelStyle}
{@link #Theme_fotorDefaultSliderStyle com.example.fotorsdkdemo:fotorDefaultSliderStyle} default slider adjustDistance
{@link #Theme_fotorDefaultTextButtonStyle com.example.fotorsdkdemo:fotorDefaultTextButtonStyle}
{@link #Theme_fotorDefaultTextViewStyle com.example.fotorsdkdemo:fotorDefaultTextViewStyle} default text style
{@link #Theme_fotorDefaultTitleBackButtonStyle com.example.fotorsdkdemo:fotorDefaultTitleBackButtonStyle}
{@link #Theme_fotorFontBold com.example.fotorsdkdemo:fotorFontBold}
{@link #Theme_fotorFontLight com.example.fotorsdkdemo:fotorFontLight}
{@link #Theme_fotorMainBottomHeight com.example.fotorsdkdemo:fotorMainBottomHeight}
{@link #Theme_fotorMainFooterBackground com.example.fotorsdkdemo:fotorMainFooterBackground}
{@link #Theme_fotorMainHeaderBackground com.example.fotorsdkdemo:fotorMainHeaderBackground}
{@link #Theme_fotorMainHeaderHeight com.example.fotorsdkdemo:fotorMainHeaderHeight}
{@link #Theme_fotorMainToolPanelBackground com.example.fotorsdkdemo:fotorMainToolPanelBackground}
{@link #Theme_fotorMainToolPanelHeight com.example.fotorsdkdemo:fotorMainToolPanelHeight}
{@link #Theme_fotorNavigationBtnWidth com.example.fotorsdkdemo:fotorNavigationBtnWidth}
{@link #Theme_fotorTitleTextSize com.example.fotorsdkdemo:fotorTitleTextSize}
@see #Theme_fotorDefaultEffectSelectorViewStyle @see #Theme_fotorDefaultHeaderButtonStyle @see #Theme_fotorDefaultImageViewBackground @see #Theme_fotorDefaultNavigateBtnStyle @see #Theme_fotorDefaultOperToolPanelStyle @see #Theme_fotorDefaultSliderStyle @see #Theme_fotorDefaultTextButtonStyle @see #Theme_fotorDefaultTextViewStyle @see #Theme_fotorDefaultTitleBackButtonStyle @see #Theme_fotorFontBold @see #Theme_fotorFontLight @see #Theme_fotorMainBottomHeight @see #Theme_fotorMainFooterBackground @see #Theme_fotorMainHeaderBackground @see #Theme_fotorMainHeaderHeight @see #Theme_fotorMainToolPanelBackground @see #Theme_fotorMainToolPanelHeight @see #Theme_fotorNavigationBtnWidth @see #Theme_fotorTitleTextSize */ public static final int[] Theme = { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006, 0x7f010007, 0x7f010008, 0x7f010009, 0x7f01000a, 0x7f01000b, 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f, 0x7f010010, 0x7f010011, 0x7f010012 }; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultEffectSelectorViewStyle} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorDefaultEffectSelectorViewStyle */ public static final int Theme_fotorDefaultEffectSelectorViewStyle = 17; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultHeaderButtonStyle} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorDefaultHeaderButtonStyle */ public static final int Theme_fotorDefaultHeaderButtonStyle = 16; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultImageViewBackground} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorDefaultImageViewBackground */ public static final int Theme_fotorDefaultImageViewBackground = 14; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultNavigateBtnStyle} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorDefaultNavigateBtnStyle */ public static final int Theme_fotorDefaultNavigateBtnStyle = 13; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultOperToolPanelStyle} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorDefaultOperToolPanelStyle */ public static final int Theme_fotorDefaultOperToolPanelStyle = 15; /**

@attr description default slider adjustDistance

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

This is a private symbol. @attr name com.example.fotorsdkdemo:fotorDefaultSliderStyle */ public static final int Theme_fotorDefaultSliderStyle = 12; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultTextButtonStyle} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorDefaultTextButtonStyle */ public static final int Theme_fotorDefaultTextButtonStyle = 11; /**

@attr description default text style

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

This is a private symbol. @attr name com.example.fotorsdkdemo:fotorDefaultTextViewStyle */ public static final int Theme_fotorDefaultTextViewStyle = 10; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultTitleBackButtonStyle} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorDefaultTitleBackButtonStyle */ public static final int Theme_fotorDefaultTitleBackButtonStyle = 18; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorFontBold} attribute's value can be found in the {@link #Theme} array.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorFontBold */ public static final int Theme_fotorFontBold = 0; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorFontLight} attribute's value can be found in the {@link #Theme} array.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type. @attr name com.example.fotorsdkdemo:fotorFontLight */ public static final int Theme_fotorFontLight = 1; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorMainBottomHeight} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorMainBottomHeight */ public static final int Theme_fotorMainBottomHeight = 2; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorMainFooterBackground} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorMainFooterBackground */ public static final int Theme_fotorMainFooterBackground = 6; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorMainHeaderBackground} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorMainHeaderBackground */ public static final int Theme_fotorMainHeaderBackground = 7; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorMainHeaderHeight} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorMainHeaderHeight */ public static final int Theme_fotorMainHeaderHeight = 4; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorMainToolPanelBackground} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorMainToolPanelBackground */ public static final int Theme_fotorMainToolPanelBackground = 8; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorMainToolPanelHeight} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorMainToolPanelHeight */ public static final int Theme_fotorMainToolPanelHeight = 3; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtnWidth} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorNavigationBtnWidth */ public static final int Theme_fotorNavigationBtnWidth = 5; /**

This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTitleTextSize} attribute's value can be found in the {@link #Theme} array.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". @attr name com.example.fotorsdkdemo:fotorTitleTextSize */ public static final int Theme_fotorTitleTextSize = 9; }; } ================================================ FILE: FotorSDKDemo/lint.xml ================================================ ================================================ FILE: FotorSDKDemo/proguard-project.txt ================================================ # To enable ProGuard in your project, edit project.properties # to define the proguard.config property as described in that file. # # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in ${sdk.dir}/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the ProGuard # include property in project.properties. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} ================================================ FILE: FotorSDKDemo/project.properties ================================================ # This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system edit # "ant.properties", and override values to adapt the script to your # project structure. # # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android-19 android.library.reference.1=../FotorSDKLibrary #------ RenderScript Configuration ------- renderscript.target=19 renderscript.support.mode=true sdk.buildtools=19.0.3 #------ RenderScript Configuration ------- ================================================ FILE: FotorSDKDemo/res/color/photo_editor_button_background_color.xml ================================================ ================================================ FILE: FotorSDKDemo/res/color/photo_editor_button_text_color.xml ================================================ ================================================ FILE: FotorSDKDemo/res/drawable/photo_editor_button_background.xml ================================================ ================================================ FILE: FotorSDKDemo/res/layout/activity_main.xml ================================================ ================================================ FILE: FotorSDKDemo/res/values/colors.xml ================================================ #E5414850 #B3C2D6 #00C0FF #EEB3C2D6 #E5414850 #991C1F27 #CC414850 ================================================ FILE: FotorSDKDemo/res/values/dimens.xml ================================================ 16dp 16dp 44dip 20sp 60dip 16sp ================================================ FILE: FotorSDKDemo/res/values/strings.xml ================================================ FotorSDKDemo Settings Hello world! Photo Editor Select an image Edit sample image ================================================ FILE: FotorSDKDemo/res/values/styles.xml ================================================ ================================================ FILE: FotorSDKDemo/res/values-sw600dp/dimens.xml ================================================ ================================================ FILE: FotorSDKDemo/res/values-sw720dp-land/dimens.xml ================================================ 128dp ================================================ FILE: FotorSDKDemo/res/values-v11/styles.xml ================================================ ================================================ FILE: FotorSDKDemo/res/values-v14/styles.xml ================================================ ================================================ FILE: FotorSDKDemo/src/com/example/fotorsdkdemo/MainActivity.java ================================================ package com.example.fotorsdkdemo; import java.io.File; import com.everimaging.fotorsdk.FotorConstants; import com.everimaging.fotorsdk.FotorSDKActivity; import com.everimaging.fotorsdk.FotorSDKVersion; import com.everimaging.fotorsdk.FotorUtils; import com.everimaging.fotorsdk.provider.FotorContentProvider; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns; import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session; import com.everimaging.fotorsdk.utils.BitmapDecodeUtils; import com.everimaging.fotorsdk.utils.Utils; import com.everimaging.fotorsdk.engine.FotorHDFilter; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; /** * Sample main activity * * @description * * @author John.Zhang * @version 1.0 * @create Apr 12, 2014 3:06:39 PM * @update Apr 12, 2014 3:06:39 PM */ public class MainActivity extends Activity { private static final int ACTION_REQUEST_FEATURE = 2; private static final int ACTION_REQUEST_GALLERY = 3; public static final String LOG_TAG = "fotorsdk_demo"; /** Folder name on the sdcard where the images will be saved **/ private static final String FOLDER_NAME = "FotorSDK"; /** Edit sample button */ Button mEditButton; /** Call gallery button */ Button mGalleryButton; /** Display image view */ ImageView mImage; /** The path for output file */ Uri mOutputFilePath; /** Image uri for image editor */ Uri mImageUri; /** Display version label for DEBUG */ private TextView mSDKVersionLabel; /** The sample image uri. */ private Uri mSampleUri; private File mGalleryFolder; /** session id for the hi-res post processing */ private String mSessionId; @Override protected void onCreate(Bundle savedInstanceState) { Log.i(LOG_TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // if (mImageUri != null) { // startFeature(mImageUri); // } if (mSampleUri != null) { startFeature(mSampleUri); } } }); mGalleryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickFromGallery(); } }); mGalleryFolder = createFolders(); // add sample image mSampleUri = Uri.parse("file:///android_asset/sample.jpg"); loadAsync(mSampleUri); if (BuildConfig.DEBUG) { mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION); } } /** * Start the activity to pick an image from the user gallery */ private void pickFromGallery() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); Intent chooser = Intent.createChooser(intent, "Choose a Picture"); startActivityForResult(chooser, ACTION_REQUEST_GALLERY); } @Override protected void onResume() { Log.i(LOG_TAG, "onResume"); super.onResume(); if (getIntent() != null) { handleIntent(getIntent()); setIntent(new Intent()); } } /** * Handle the incoming {@link Intent} */ private void handleIntent(Intent intent) { String action = intent.getAction(); if (null != action) { if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) { Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM); loadAsync(uri); } } else if (Intent.ACTION_VIEW.equals(action)) { Uri data = intent.getData(); Log.d(LOG_TAG, "data: " + data); loadAsync(data); } } } /** * Load the incoming Image * * @param uri */ private void loadAsync(final Uri uri) { Log.i(LOG_TAG, "loadAsync: " + uri); Drawable toRecycle = mImage.getDrawable(); if (toRecycle != null && toRecycle instanceof BitmapDrawable) { if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null) ((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle(); } mImage.setImageDrawable(null); mImageUri = null; DownloadAsync task = new DownloadAsync(); task.execute(uri); } @Override protected void onDestroy() { Log.i(LOG_TAG, "onDestroy"); super.onDestroy(); mOutputFilePath = null; } @Override public void onContentChanged() { super.onContentChanged(); System.out.println("context:" + this.getPackageName()); mEditButton = (Button) findViewById(R.id.button2); mGalleryButton = (Button) findViewById(R.id.button_gallery); mImage = (ImageView) findViewById(R.id.image); mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label); } @Override /** * This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise. * * @param requestCode * - it is the code passed with startActivityForResult * @param resultCode * - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED ) * @param data * - the result data */ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ACTION_REQUEST_FEATURE: { Uri uri = data.getData(); Bitmap bitmap = BitmapDecodeUtils.decode(this, uri, 0, 0); setImageURI(uri, bitmap); new ProcessHDTask(this).execute(); } break; case ACTION_REQUEST_GALLERY: { Uri uri = data.getData(); loadAsync(uri); startFeature(uri); } break; } } else if (resultCode == RESULT_CANCELED) { switch (requestCode) { case ACTION_REQUEST_FEATURE: if (mSessionId != null) deleteSession(mSessionId); break; } } } private String onSaveCompletion() { Uri sessionUri = SessionColumns.getContentUri(this, mSessionId); Cursor cursor = getContentResolver().query(sessionUri, null, null, null, null); Session session = Session.create(cursor); if (session != null) { FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session); fotorHDFilter.loadImage(); fotorHDFilter.executeFilter(); String dstPath = Utils.getSDPath() + "/testOriginal.jpg"; fotorHDFilter.save(dstPath); fotorHDFilter.dispose(); deleteSession(mSessionId); return dstPath; } return null; } class ProcessHDTask extends AsyncTask { private ProgressDialog mDialog; private Context mContext; public ProcessHDTask(Context context) { this.mContext = context; } @Override protected void onPreExecute() { mDialog = ProgressDialog.show(mContext, "Process HD", "Please wait..."); } @Override protected String doInBackground(Void... params) { return onSaveCompletion(); } @Override protected void onPostExecute(String result) { mDialog.dismiss(); String msg = "Process Error"; if (result != null) { msg = result; } Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show(); } } /** * Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in * Feather. * * @param session_id */ private void deleteSession(final String session_id) { Uri uri = FotorContentProvider.SessionColumns.getContentUri(this, session_id); int count = getContentResolver().delete(uri, null, null); System.out.println("delete session count:" + count); } /** * Given an Uri load the bitmap into the current ImageView and resize it to * fit the image container size * * @param uri */ @SuppressWarnings("deprecation") private boolean setImageURI(final Uri uri, final Bitmap bitmap) { Log.d(LOG_TAG, "image size: " + bitmap.getWidth() + "x" + bitmap.getHeight()); mImage.setImageBitmap(bitmap); mImage.setBackgroundDrawable(null); mEditButton.setEnabled(true); mImageUri = uri; return true; } /** * We need to notify the MediaScanner when a new file is created. In this * way all the gallery applications will be notified too. * * @param file */ private void updateMedia(String filepath) { Log.i(LOG_TAG, "updateMedia: " + filepath); MediaScannerConnection.scanFile(getApplicationContext(), new String[] { filepath }, null, null); } /** * Pick a random image from the user gallery * * @return */ @SuppressWarnings("unused") private Uri pickRandomImage() { Cursor c = getContentResolver().query( Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, ImageColumns.DATA }, ImageColumns.SIZE + ">?", new String[] { "90000" }, null); Uri uri = null; if (c != null) { int total = c.getCount(); int position = (int) (Math.random() * total); Log.d(LOG_TAG, "pickRandomImage. total images: " + total + ", position: " + position); if (total > 0) { if (c.moveToPosition(position)) { String data = c.getString(c .getColumnIndex(Images.ImageColumns.DATA)); long id = c.getLong(c .getColumnIndex(Images.ImageColumns._ID)); uri = Uri.parse(data); Log.d(LOG_TAG, uri.toString()); } } c.close(); } return uri; } /** * Return a new image file. Name is based on the current time. Parent folder * will be the one created with createFolders * * @return * @see #createFolders() */ private File generateOutputFileName() { if (mGalleryFolder != null) { if (mGalleryFolder.exists()) { File file = new File(mGalleryFolder, "Fotor_" + System.currentTimeMillis() + ".jpg"); return file; } } return null; } /** * Once you've chosen an image you can start the feather activity * * @param uri */ private void startFeature(Uri uri) { Log.d(LOG_TAG, "uri: " + uri); // first check the external storage availability if (!isExternalStorageAvilable()) { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("External Storage is not avilable").show(); return; } // create a temporary file where to store the resulting image File file = generateOutputFileName(); if (null != file) { mOutputFilePath = Uri.fromFile(file); } else { new AlertDialog.Builder(this) .setTitle(android.R.string.dialog_alert_title) .setMessage("Failed to create a new File").show(); return; } // Create the intent needed to start feather Intent newIntent = new Intent(this, FotorSDKActivity.class); // === INPUT IMAGE URI === // Set the source image uri newIntent.setData(uri); // === OUTPUT ==== // Optional // Pass the uri of the destination image file. // This will be the same uri you will receive in the onActivityResult System.out.println("mOutputFilePath->:" + mOutputFilePath); // newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, // mOutputFilePath); // === OUTPUT QUALITY === // Optional newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90); // === MAX SIZE === // Optional // you can pass the maximum allowed image size (for the preview), // otherwise feather will determine // the max size based on the device informations. // This will not affect the hi-res image size. // Here we're passing the current display size as max image size because // after // the execution of Aviary we're saving the HI-RES image so we don't // need a big // image for the preview final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int max_size = Math.max(metrics.widthPixels, metrics.heightPixels); max_size = (int) ((float) max_size / 1.4f); newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size); mSessionId = FotorUtils.generateSessionId(this); getContentResolver().delete( SessionColumns.getContentUri(this, mSessionId), null, null); Log.d(LOG_TAG, "session: " + mSessionId + ", size: " + mSessionId.length()); newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId); // // === FEATURE LIST === // newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] { // FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(), // FotorFeaturesFactory.FeatureType.BORDER.name() }); // Whether hide confirm dialog when user not saved the was changed // bitmap // This default value will show // newIntent.putExtra(FotorConstants.EXTRA_HIDE_DISCARD_ALERT, false); // Whether input image no changes,were made to the image. // newIntent.putExtra(FotorConstants.EXTRA_SAVE_ON_NO_CHANGES, true); // start feather startActivityForResult(newIntent, ACTION_REQUEST_FEATURE); } /** * Check the external storage status * * @return */ private boolean isExternalStorageAvilable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * Try to create the required folder on the sdcard where images will be * saved to. * * @return */ private File createFolders() { File baseDir; if (android.os.Build.VERSION.SDK_INT < 8) { baseDir = Environment.getExternalStorageDirectory(); } else { baseDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } if (baseDir == null) return Environment.getExternalStorageDirectory(); Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath()); File fotorSDKFolder = new File(baseDir, FOLDER_NAME); if (fotorSDKFolder.exists()) return fotorSDKFolder; if (fotorSDKFolder.mkdirs()) return fotorSDKFolder; return Environment.getExternalStorageDirectory(); } class DownloadAsync extends AsyncTask implements OnCancelListener { ProgressDialog mProgress; private Uri mUri; @Override protected void onPreExecute() { super.onPreExecute(); mProgress = new ProgressDialog(MainActivity.this); mProgress.setIndeterminate(true); mProgress.setCancelable(true); mProgress.setMessage("Loading image..."); mProgress.setOnCancelListener(this); mProgress.show(); } @Override protected Bitmap doInBackground(Uri... params) { mUri = params[0]; DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int maxW = (int) displayMetrics.widthPixels; int maxH = (int) displayMetrics.heightPixels; Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(), mUri, maxW, maxH); return bitmap; } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (mProgress.getWindow() != null) { mProgress.dismiss(); } if (result != null) { setImageURI(mUri, result); } else { Toast.makeText(MainActivity.this, "Failed to load image " + mUri, Toast.LENGTH_SHORT) .show(); } } @Override public void onCancel(DialogInterface dialog) { Log.i(LOG_TAG, "onProgressCancel"); this.cancel(true); } @Override protected void onCancelled() { super.onCancelled(); Log.i(LOG_TAG, "onCancelled"); } } } ================================================ FILE: LICENSE ================================================ The MIT License (MIT) Copyright (c) 2014 koluray Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ ImageEditor-android =================== the omnipotent image editor **[ImageEditor](https://github.com/koluray/ImageEditor-android.git)** is an omnipotent image editor which is based on [FotorSDK](https://github.com/Fotor). ![sample](https://raw.githubusercontent.com/jhondge/Everimaging-android-res/master/fotorsdk/images/FotorSDK_Android.jpg) Get more info and downloads of ImageEditor (for iOS and Android) via [the ImageEditor mobile portal](https://github.com/koluray?tab=repositories) [Click here for **official documentation for ImageEditor-android**](https://github.com/Fotor/FotorSDK-android/wiki/InstallationGuide) **omnipotent** means: * Plentiful features: ImageEditor currently support a mount of features as below * `Auto Enhance`: One-Tap Enhance can automatically transform boring photos into masterpieces. * `Scenes`: Exclusive-Sophisticated photo-enhancement technology offers 13 different scenes options that automatically optimize the photo depending on the conditions when it was taken. * `Base Adjust`: Modify brightness, contrast, saturation, and sharpness with our easy tools. * `Advance Adjust`: Use the advanced features to adjust vignette, shadows and highlights, temperature and tint, colors, and even curves. * `Effect`: Let your users stretch their creativity with Fotor’s huge palette of effects. And multiple effects can be combined in a single photo for thousands of combinations! * `Rotate`: Rotate and Flip. * `Crop`: Crop resizes photos with standard options, including 4:3, 6:4, 7:5, 10:8, 16:9, 3:4, 4:6, 5:7, 8:10, 16:9 or Custom. * `Frame`: Create fun images by framing your photos in different scenes. * `Sticker`: Stickers can be rotated or resized to perfectly fit each photo. * `Text`: Awesome fonts and customizable text, with text color, size, shadow, alignment, and transparency all adjustable. * `Tilt Shift`: Tilt-Shift gives images the depth-of-field and other visual effects normally seen only on professional grade DSLR cameras, using a mix of clear focus and selective blurring to create magnificent photos. * Great performance: Low memory usage and amazingly fast. * Real time performance: 20 ~ 40MB transient memory. All of the fine adjustment controls in ImageEditor are smoothly applied in real time. * Generate Output image performance: high-quality and fast processing, support 500MP image. (need [higher image processing resolution](http://www.fotor.com) ?) * Flexibility: Owing to the powerful [FotorSDK](https://github.com/Fotor), ImageEditor has a high flexibility. * Easy to use interface * Configurable features * Compatibility: * API Level: Compatible with Android 2.3 or higher. ## More Information * There's lots more information on the [wiki](https://github.com/koluray/ImageEditor-android/wiki). ## Credits ## **Design, coding:** [John](https://github.com/jhondge) , [ExenVitor](https://github.com/ExenVitor) ## License ## * ImageEditor-android is released under the MIT License. This is a permissive, commercial-friendly license. For details read the individual [LICENSE](LICENSE).